我需要创建一个将显示富文本的 TreeView 类型控制器。
例子:
»以人名签名
»通过人名认证
TreeViewItem 的内容很简单,因为我可以简单地将 TextBlock 放入其中,但标题不允许多个字体样式声明。
我真的是 XAML 的初学者,我在 ExpressionBlend 工作(尽管我并不回避编码)。如果有人将我推向正确的方向,我将不胜感激。
我需要创建一个将显示富文本的 TreeView 类型控制器。
例子:
»以人名签名
»通过人名认证
TreeViewItem 的内容很简单,因为我可以简单地将 TextBlock 放入其中,但标题不允许多个字体样式声明。
我真的是 XAML 的初学者,我在 ExpressionBlend 工作(尽管我并不回避编码)。如果有人将我推向正确的方向,我将不胜感激。
您可以在 TextBlock 中放置“运行”来更改字体。
例如
<TextBlock>Hello<Run FontStyle="Bold">World</Run></TextBlock>
您可以将标题的内容设置为您想要的任何内容
<TreeViewItem>
<TreeViewItem.Header>
<TextBlock>Hello<Run FontStyle="Bold">World</Run></TextBlock>
</TreeViewItem.Header>
</TreeViewItem>
当你这样做时:
<TreeViewItem>Hello</TreeViewItem>
您没有告诉 XAML 解析器要将“Hello”放入哪个属性。XAML 解析器将查看类型 (TreeViewItem) 并查看哪个设置为“ContentProperty”,在本例中,它是名为“Header”的属性。因为您没有指定“Hello”是什么,所以它假定为一个字符串。由于字符串实际上不能在 WPF 中显示为内容,因此必须创建一个控件来显示该字符串。TreeViewItem 的 ValueConverter 设置为提供一个 TextBlock 控件并将该控件的 Text 设置为您输入的字符串。所以幕后发生的事情比你看到的要多得多:)
您可以使用自己的控件完成所有这些操作
您可能应该阅读 WPF 模板、内容控件、内容呈现器、样式等。您可以使用 WPF 做很多强大的事情 - 例如,使应用程序中的每个按钮都具有相同的布局和样式,并添加一个没有任何代码的按钮前面的图像(只需几行 XAML)
在这里查看模板的初学者指南