2012-10-30 188 views
2

我在嘗試更改WPF中默認ContextMenu的樣式時遇到問題。 我不想重寫de ContextMenu,我簡單的想重寫ContextMenu STYLE。 在所有的網站上說,我必須創建ContextMenu的每個MenuItem,但我想使用默認的MenuItems,並且只改變樣式並在後臺添加邊框。 我該怎麼辦?C#覆蓋默認值ContextMenu樣式(WPF)

<Style TargetType="{x:Type ContextMenu}"> 
    <Setter Property="SnapsToDevicePixels" Value="True" /> 
    <Setter Property="OverridesDefaultStyle" Value="True" /> 
    <Setter Property="Grid.IsSharedSizeScope" Value="true" /> 
    <Setter Property="HasDropShadow" Value="True" /> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type ContextMenu}"> 
       <Border x:Name="Border" Background="#000" BorderThickness="1"> 
        <ScrollViewer x:Name="ScrollViewer"> 
         <ItemsPresenter /> 
        </ScrollViewer> 
       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

回答

2

確保:

  • 資源字典加載並在你的代碼不卸載以後。 (據我記得裝載的資源詞典列表可以在Application.Current.Resources.MergedDictionaries找到)
  • 你不要在其聲明中設置目標ContextMenu的樣式或其他屬性。