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>