当控件的类型具有全局样式时,如何仅在WPF中为我的应用程序的一部分更改控件的样式?

| 我在App.xaml中设置了Menu / ContextMenu / MenuItem控件的样式,以便这些样式适用于我的所有应用程序。 定义如下(例如,使用MenuItem):
<Style TargetType=\"{x:Type MenuItem}\">
    <Setter Property=\"SnapsToDevicePixels\" Value=\"true\"/>
    <Setter Property=\"OverridesDefaultStyle\" Value=\"True\"/>
    <!-- more setters -->
</Style>
这很好。 现在,在某个时候我有一个RichTextBox,我希望它的ContextMenu和MenuItems具有不同的样式。 所以我写道:
<RichTextBox>

    <RichTextBox.ContextMenu>
        <ContextMenu>
            <MenuItem Command=\"Undo\" Style=\"{StaticResource menuItem}\">Toto</MenuItem>
            <MenuItem Command=\"Redo\"/>
            <Separator/>
            <MenuItem Command=\"Cut\"/>
            <MenuItem Command=\"Copy\"/>
            <MenuItem Command=\"Paste\"/>
            <MenuItem Command=\"SelectAll\"/>
        </ContextMenu>
    </RichTextBox.ContextMenu>

    <!-- and here the RichTextBox\'s conent -->

</RichTextBox>
现在我正在尝试找出可以放置新样式的位置...问题是:我无法找出它:无论在何处以及如何添加它(RichTextBox或ContextMenu(带有显式Key或targetType),我无法摆脱\“ Global \”样式。而本地的只是被忽略了。 我该如何进行?     
已邀请:
        尝试:
        <RichTextBox.Resources>
            <Style x:Key=\"menuItem\"  TargetType=\"{x:Type MenuItem}\">
                <Setter Property=\"Foreground\" Value=\"Blue\"/>
            </Style>
        </RichTextBox.Resources>
    
        最后,我选择了ContextMenu的资源,这甚至为我节省了每个menuItem中的“ Style = ... \”。
<RichTextBox.ContextMenu>
    <ContextMenu>

        <ContextMenu.Resources>
            <Style TargetType=\"{x:Type MenuItem}\">
                <Setter Property=\"SnapsToDevicePixels\" Value=\"true\"/>
                <Setter Property=\"OverridesDefaultStyle\" Value=\"True\"/>

                <Setter Property=\"Background\" Value=\"{StaticResource MenuItemBackgroundBrush}\"/>
            </Style>
        </ContextMenu.Resources>

    </ContextMenu>
</RichTextBox.ContextMenu>
我想我从一开始就拥有它,但是以某种方式忘记了OverridesDefaultStyle = true,这似乎是问题所在。 (尽管从我对MS文档的了解来看,它对我的​​情况没有任何影响。     

要回复问题请先登录注册