【发布时间】:2013-11-25 21:06:55
【问题描述】:
我想使用以下规则为 WPF 树视图制作样式:
- 必须在样式中定义树的外观;
- 必须在样式中定义树项的外观;
- 必须在样式中定义树项内容(标题)的外观,并且可以在样式之外自定义选项。
我提取了TreeView 和TreeItem 的默认样式并做了一些修改。目前,我的代码骨架如下所示:
<Window.Resources>
<Style TargetType="{x:Type TreeView}">
<Style.Resources>
<Style TargetType="{x:Type TreeViewItem}">
...
</Style>
</Style.Resources>
</Style>
</Window.Resources>
<Grid>
<TreeView>
<TreeViewItem Header="Root">
<TreeViewItem header="Inner" />
</TreeViewItem>
</TreeView>
</Grid>
我已经自定义了展开按钮的外观,以检查是否一切正常。上面显示的代码按计划工作。
但是我想自定义样式之外的TreeViewItems 的外观。我写:
<TreeView>
<TreeView.Resources>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="HeaderTemplate">
<Setter.Value>
...
</Setter.Value>
</Setter>
</Style>
</TreeView.Resources>
<TreeViewItem Header="Root">
<TreeViewItem Header="Sub" />
</TreeViewItem>
</TreeView>
项目的样式是我想要的,但是扩展器按钮会返回到它的默认外观。
如何实现我想要的样式机制?
您可以下载whole sample source。
【问题讨论】: