我有一個按鈕,這個按鈕有一個上下文菜單。當左擊按鈕時,我使用按鈕點擊觸發器將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