2012-09-09 48 views
0

我已經進口的控制風格在我的App.xaml文件,如強制文本菜單使用系統資源

<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" /> 

但對於文本菜單控制,我想使用WPF的buildin的風格,我怎麼能覆蓋該?

回答

0

設置StyleContextMenu爲null:

<Window x:Class="WpfApplication11.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <StackPanel> 
     <Button Content="A metro style button" Height="42" HorizontalAlignment="Left" Margin="12,12,0,0" Name="button1" VerticalAlignment="Top" Width="163"> 
      <Button.ContextMenu> 
       <ContextMenu Style="{x:Null}"> 
        <MenuItem Header="Item1"/> 
        <MenuItem Header="Item2"/> 
       </ContextMenu> 
      </Button.ContextMenu> 
      </Button> 
    </StackPanel> 
</Window> 

如果你想蘊(而不是明確地)設置所有ContextMenus使用默認的非MahApps風格,那麼使用:

<StackPanel.Resources> 
    <Style BasedOn="{x:Null}" TargetType="{x:Type ContextMenu}"/> 
</StackPanel.Resources> 

未將Style設置爲Null。

enter image description here

隨着設置樣式爲NULL。

enter image description here

如果您還需要將MenuItem樣式恢復爲默認風格,然後使用此:

<StackPanel.Resources> 
    <Style BasedOn="{x:Null}" TargetType="{x:Type ContextMenu}"/> 
    <Style BasedOn="{x:Null}" TargetType="{x:Type MenuItem}"/> 
</StackPanel.Resources> 
+0

感謝,工作就像一個魅力 – tesla1060