我在库中声明了我的控件的style
:
<ContentControl.Resources>
<ContextMenu x:Key="ContextMenu">
<MenuItem Header="{x:Static Drawing:Headers.AddEdge}" Click="AddEdgeClick"/>
<MenuItem Header="{x:Static Drawing:Headers.ChangeID}" Click="ChangeIDClick"/>
<MenuItem Header="{x:Static Drawing:Headers.Remove}" Click="RemoveClick"/>
</ContextMenu>
<Style x:Key="Style" TargetType="{x:Type Drawing:Node}">
<Setter Property="ContextMenu" Value="{StaticResource ContextMenu}"/>
</Style>
</ContentControl.Resources>
<ContentControl.Style>
<StaticResource ResourceKey="Style"/>
</ContentControl.Style>
但应用程序中此控件的全局样式不起作用......
<Style TargetType="Drawing:Node">
<Setter Property="ContextMenu" Value="{x:Null}"/>
<EventSetter Event="MouseLeftButtonUp" Handler="DirectoryClicked"/>
</Style>
答案 0 :(得分:0)
如果在元素上显式设置Style属性,则不会应用任何隐式样式(即您的全局样式)。如果您的全局样式实际上是默认样式,那么它仍应该应用,但它听起来并不像您正在做的那样。
您可以将显式样式基于隐式样式,如下所示:
<Style x:Key="Style" TargetType="{x:Type Drawing:Node}" BasedOn="{StaticResource {x:Type Drawing:Node}}">
<Setter Property="ContextMenu" Value="{StaticResource ContextMenu}"/>
</Style>
当然,假设Drawing:Node与GraphNode:Node。
是相同的类/类型