我有一个按钮,这个按钮有一个上下文菜单。当左击按钮时,我使用按钮点击触发器将ContextMenu.IsOpen属性设置为true。 我的问题是如下 - 只要我做的按钮不点击右键,在右键菜单不继承我在窗口的资源定义的样式。 我搜索了它,发现上下文菜单的样式只有在右键单击后才初始化。 即使我不右键单击它,我如何强制样式初始化? (我无法将上下文菜单的样式设置为硬编码,因为我希望在更改主题时自动轻松地更改上下文菜单的样式,而不需要单独维护每个上下文菜单(对于我的代码)。 谢谢!的ContextMenu不继承资源风格
的XAML:
`
<Window.Resources>
<Style TargetType="ContextMenu">
<Setter Property="Background" Value="Green"/>
</Style>
</Window.Resources>
<Grid>
<Button Content="Click Me!" Width="80" Height="50">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<EventTrigger RoutedEvent="Click">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="ContextMenu.IsOpen">
<DiscreteBooleanKeyFrame KeyTime="0:0:0" Value="True"/>
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button.ContextMenu>
<ContextMenu>
<MenuItem>
<MenuItem.Header>
<CheckBox Content="Include First Option"/>
</MenuItem.Header>
</MenuItem>
<MenuItem>
<MenuItem.Header>
<CheckBox Content="Include Second Option"/>
</MenuItem.Header>
</MenuItem>
</ContextMenu>
</Button.ContextMenu>
</Button>
</Grid>
'
它并没有真正解决我的问题 - 如果我你有什么建议,这意味着每次我更改主题时,我需要改变所有的上下文菜单的风格我手头上有我的代码,这不是很方便维护(我更喜欢使用没有键的样式,所以它只会继承样式,就像任何普通的控件一样)。有什么建议么?不管怎么说,还是要谢谢你 :) – user3673905