我需要创建一个将显示富文本的 TreeView 类型控制器。
例:
» 署名
» 人名认证
TreeViewItem 的内容很简单,因为我可以简单地将 TextBlock 放入其中,但标头不允许多个字体样式声明。
我真的是XAML的初学者,我在ExpressionBlend工作(尽管我并不回避编码)。如果有人把我推向正确的方向,我将不胜感激。
您可以在文本块中放置"运行"以更改字体。
例如
<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 的值转换器设置为提供 TextBlock 控件,并将此控件的 Text 设置为您输入的字符串。因此,幕后发生的事情远不止你所能看到的:)
所有这些事情都可以用自己的控件完成
您可能应该阅读 WPF 模板、内容控件、内容演示器、样式等。您可以使用 WPF 执行许多功能强大的操作 - 例如,使应用程序中的每个按钮都具有相同的布局和样式,并在没有任何代码的情况下将图像添加到按钮的前面(只需几行 XAML)
查看此处的模板初学者指南
http://msdn.microsoft.com/en-us/magazine/cc163497.aspx