wpf:设置ItemsContainerStyle将重写自定义树控件的所有自定义样式
我开发了定制的wpf:设置ItemsContainerStyle将重写自定义树控件的所有自定义样式,wpf,xaml,treeview,custom-controls,Wpf,Xaml,Treeview,Custom Controls,我开发了定制的TreeView(称之为MyTree)。在这个自定义控件的ResourceDictionary中的General.xaml中,我为TreeViewItem定义了样式,其中设置了控件模板,我需要显示每个项。首先,我创建特殊的ControlTemplate: <ControlTemplate TargetType="{x:Type TreeViewItem}" x:Key="MyTreeViewItem"> ......... </ControlTemplate>
TreeView
(称之为MyTree
)。在这个自定义控件的ResourceDictionary
中的General.xaml
中,我为TreeViewItem
定义了样式,其中设置了控件模板,我需要显示每个项。首先,我创建特殊的ControlTemplate:
<ControlTemplate TargetType="{x:Type TreeViewItem}" x:Key="MyTreeViewItem">
.........
</ControlTemplate>
一切正常,而我使用我的控制,如:
<local:MyTree>
<local:MyTree.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding DependentSuites}"/>
</local:MyTree.ItemTemplate>
..........other property specific for MyTree control.............
</local:MyTree>
enter code here
其他特定于MyTree控件的属性。。。。。。。。。。。。。
在这里输入代码
当我尝试为我的TreeViewItem添加样式时,它是错误的。例如,下面的代码
<local:MyTree>
<local:MyTree.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding DependentSuites}"/>
</local:MyTree.ItemTemplate>
..........other property specific for MyTree control.............
<local:MultiColumnTreeView.Resources>
<Style TargetType="TreeViewItem"
<Setter Property="Background" Value="Red"/>
</Style>
</local:MultiColumnTreeView.Resources>
</local:MyTree>
其他特定于MyTree控件的属性。。。。。。。。。。。。。
您可以根据您想要的任何现有样式进行修改,只需修改实例所需的内容,就像您正在使用样式那样
希望这能有所帮助。我对那个决定有些想法。但是有没有办法从DictionarySource中导入样式,DictionarySource是在Themes/generic.xaml
中为单独的CustomControls中的自定义控件定义的。dll我不确定我是否理解这个问题,您的意思是使用合并词典?或者您的意思是这样的?感谢过一会儿我会试试你的建议,然后给出反馈。
<local:MyTree>
<local:MyTree.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding DependentSuites}"/>
</local:MyTree.ItemTemplate>
..........other property specific for MyTree control.............
<local:MultiColumnTreeView.Resources>
<Style TargetType="TreeViewItem"
<Setter Property="Background" Value="Red"/>
</Style>
</local:MultiColumnTreeView.Resources>
</local:MyTree>
<Style TargetType="TreeViewItem"
BasedOn="{StaticResource YourExistingStyleYouWantToBaseItOn}">
<Setter Property="Background" Value="Red"/>
</Style>