我有一个静态TreeView
,其中所有项目都添加到XAML中,如:
<TreeView>
<TreeViewItem Header="Pages">
<TreeViewItem Header="Google"/>
<TreeViewItem Header="Stackoverflow"/>
</TreeViewItem>
<TreeViewItem Header="Stuff">
<TreeViewItem Header="MyDomain"/>
<TreeViewItem Header="Other Domains">
<TreeViewItem Header="Domain 1"/>
<TreeViewItem Header="Domain 2"/>
<TreeViewItem Header="Domain 3"/>
</TreeViewItem>
</TreeViewItem>
</TreeView>
所以我没有ItemsSource
。现在我想用Style添加图像到我的TreeViewItems
。因此我使用:
<TreeView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Width="16" Height="16"></Image>
<Label Content="???"/>
</StackPanel>
</DataTemplate>
</TreeView.ItemTemplate>
不幸的是,这不起作用。未使用StackPanel
。
我也尝试过:
<TreeView.Resources>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="TreeViewItem.Header">
<Setter.Value>
<StackPanel Orientation="Horizontal">
<Image Width="16" Height="16"/>
<Label Content="???"/>
</StackPanel>
</Setter.Value>
</Setter>
</Style>
</TreeView.Resources>
这也不能达到我的预期。
我做错了什么?
答案 0 :(得分:1)
在Window.Resources中添加此样式。删除您定义的ItemTemplate,它不会应用于您在xaml中添加的TreeViewItem。
<Style TargetType="TreeViewItem">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel>
<Image Width="16" Height="16"/>
<Label Content="{TemplateBinding Content}"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>