XAML:有没有办法将TreeViewItem头属性设置为包含多种字体样式?

时间:2012-06-20 12:48:39

标签: wpf xaml expression-blend treeviewitem

我需要创建一个显示富文本的TreeView类型控制器。

示例:

» 人名

签名 通过人名

»认证

TreeViewItem的内容很简单,因为我可以简单地将TextBlock放在里面,但是标题不允许多种字体样式声明。

我真的是XAML的初学者,我在ExpressionBlend工作(尽管我不回避编码)。如果有人把我推向正确的方向,我真的很感激。

1 个答案:

答案 0 :(得分:3)

您可以在TextBlock中放置“运行”以更改字体。

e.g。

<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)

在这里查看模板的初学者指南

http://msdn.microsoft.com/en-us/magazine/cc163497.aspx