当控件的类型具有全局样式时,如何仅在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 \”样式。而本地的只是被忽略了。
我该如何进行?
没有找到相关结果
已邀请:
2 个回复
芭隘的盘石
眠缝
我想我从一开始就拥有它,但是以某种方式忘记了OverridesDefaultStyle = true,这似乎是问题所在。 (尽管从我对MS文档的了解来看,它对我的情况没有任何影响。