如何通过C#而不是XAML为TreeView编写触发器和设置器
如何从代码隐藏而不是XAML向TreeView添加以下基于XAML的触发器如何通过C#而不是XAML为TreeView编写触发器和设置器,c#,.net,wpf,xaml,dependency-properties,C#,.net,Wpf,Xaml,Dependency Properties,如何从代码隐藏而不是XAML向TreeView添加以下基于XAML的触发器 <TreeView> <TreeView.Resources> <Style TargetType="{x:Type TreeViewItem}"> <Setter Property="ContextMenu"> <Setter.Value>
<TreeView>
<TreeView.Resources>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Menu Item 1" />
<MenuItem Header="Menu Item 2" />
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</TreeView.Resources>
<TreeViewItem Header="Item 1">
<TreeViewItem Header="Sub-Item 1"/>
</TreeViewItem>
<TreeViewItem Header="Item 2"></TreeViewItem>
</TreeView>
下面是样式中的setter:
<Setter Property="my:TreeViewCustomizer.ContextMenuOpened"
Value="{Binding ContextMenu.IsOpen, RelativeSource={RelativeSource Self}}" />
参考问题:使用以下语句完成 SolidColorBrush colorBrush=新的SolidColorBrush(Colors.DodgerBlue);myTreeView.Resources.Add(SystemColors.ControlBrushKey,colorbush) :)
<Setter Property="my:TreeViewCustomizer.ContextMenuOpened"
Value="{Binding ContextMenu.IsOpen, RelativeSource={RelativeSource Self}}" />
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="true"/>
<Condition Property="my:TreeViewCustomizer.ContextMenuOpened" Value="true"/>
</MultiTrigger.Conditions>
<Setter TargetName="Bd"
Property="Background"
Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
<Setter Property="Foreground"
Value="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}"/>
</MultiTrigger>
TreeView _objTreeView = new TreeView();