wpf 控件样式从窗口继承

Posted

技术标签:

【中文标题】wpf 控件样式从窗口继承【英文标题】:wpf controls style Foreground inheritance from window 【发布时间】:2021-10-30 09:45:59 【问题描述】:

为什么当我在窗口中设置属性 FontSize 时:

<Window x:Class= .....
    FontSize="16" >

它改变了窗口中的所有控件(例如在 TextBox 或 Button 中) 但是,当我改变 Foreground="Green" 时什么都没有改变? 在哪里可以找到有关此类依赖项的更多信息并获取它们的列表?

【问题讨论】:

【参考方案1】:

这是由FrameworkPropertyMetadata.Inherits 标志引起的,该标志设置在FontSize 依赖属性上。

请注意,该标志也设置在 Foreground 属性上,因此窗口前景的值将被例如继承。所有 TextBlocks 子元素。


属性文档中的备注中通常有一个依赖属性信息部分,它显示了在依赖属性上设置了哪些 FrameworkPropertyMetadata 标志。

【讨论】:

如何更改项目的这个标志? 你不能。声明属性时只能设置一次。

以上是关于wpf 控件样式从窗口继承的主要内容,如果未能解决你的问题,请参考以下文章

如果样式已经设置,如何覆盖 WPF 子控件样式?

WPF设置控件获取键盘焦点时的样式FocusVisualStyle

wpf怎么 动态 为控件添加事件? 我 窗口上有许多个label控件,我只是想改变它们的背景色,怎样批量添加?

WPF 基础控件之Window样式

WPF 实现换肤功能

从包含的用户控件设置窗口内某些控件的样式