0

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

例子:

»以人名签名

»通过人名认证

TreeViewItem 的内容很简单,因为我可以简单地将 TextBlock 放入其中,但标题不允许多个字体样式声明。

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

4

1 回答 1

3

您可以在 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)

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

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

于 2012-06-20T12:53:30.267 回答