WPF菜单项样式

WPF菜单项样式,wpf,xaml,textbox,menu,styles,Wpf,Xaml,Textbox,Menu,Styles,我有以下应用程序资源 <Style TargetType="{x:Type TextBlock}"> <Setter Property="Background" Value="{DynamicResource windowTextBackColor}"/> <Setter Property="Foreground" Value="{DynamicResource windowsTextForeColor}"/> </Style>

我有以下应用程序资源

<Style TargetType="{x:Type TextBlock}">
    <Setter Property="Background" Value="{DynamicResource windowTextBackColor}"/>
    <Setter Property="Foreground" Value="{DynamicResource windowsTextForeColor}"/>
</Style>

因此,我的应用程序中的所有文本块都应该采用这些颜色

但是,我的主窗口上的菜单及其包含菜单项不采用这些颜色

我必须做XAML

为了使其采用这些颜色,是否有理由设置针对文本块的样式不起作用


谢谢

我想你得把菜单和菜单分开。
MenuItem
是一个
HeaderedContentControl
,它的Header属性不是
TextBlock
,而是一个
对象
,因此它不会受到TextBlock样式的影响

您还可以尝试将该样式更改为target
Control
,而不是TextBlock。(控件是定义
前景
背景
的地方。)我不能确定它是否能工作,但如果能工作,它将使每个控件(文本块、菜单项、按钮…)都具有这些背景和前景颜色

也可以考虑使用<>代码> < /Cord> >,这样你就可以“继承”样式了。如果不这样做,则在层次结构更上层定义的样式将不会影响在层次结构下层定义了样式的控件。基本上,较低的值掩盖了较高的值,除非您使用

BasedOn
。以这种方式使用它:

BasedOn="{StaticResource {x:Type <your type here>}}"
BasedOn=“{StaticResource{x:Type}”

我认为您必须分别设置菜单和菜单项的样式。
MenuItem
是一个
HeaderedContentControl
,它的Header属性不是
TextBlock
,而是一个
对象
,因此它不会受到TextBlock样式的影响

您还可以尝试将该样式更改为target
Control
,而不是TextBlock。(控件是定义
前景
背景
的地方。)我不能确定它是否能工作,但如果能工作,它将使每个控件(文本块、菜单项、按钮…)都具有这些背景和前景颜色

也可以考虑使用<>代码> < /Cord> >,这样你就可以“继承”样式了。如果不这样做,则在层次结构更上层定义的样式将不会影响在层次结构下层定义了样式的控件。基本上,较低的值掩盖了较高的值,除非您使用

BasedOn
。以这种方式使用它:

BasedOn="{StaticResource {x:Type <your type here>}}"
BasedOn=“{StaticResource{x:Type}”

我可以建议您将一些问题标记为已回答吗?它促进了社区的发展,人们会更愿意帮助你。我能推荐你把一些问题标记为已回答吗?它促进了社区的发展,人们会更倾向于帮助你。。由于它的
标题
属性是一个
对象
,您也可以尝试
标题模板
来包含
文本块
是。。由于它的
标题
属性是一个
对象
,您也可以尝试
标题模板
来包含
文本块