1

我一直在尝试解释我继承的项目中的 XAML 代码,我想弄清楚某些元素中某些值的来源。当我在“属性”面板中查看对象的属性时,我可以看到每个属性旁边的方块。白色方块表示属性值是默认值,黑色方块表示属性值是“本地”,表示它已从默认值更改并且可以在 XAML 标记中看到更改,绿色方块表示“环境” 。”

有应用于对象的样式,因此我可以直觉地认为环境属性中的值必须来自资源字典。我仍然不确定在哪里寻找值的来源,我想这样做以更改它们。环境属性的文档对我来说很难理解并且没有回答我所有的问题,而且我还没有找到任何讨论默认、本地和环境之间差异的文档。

如果这是一个合适的地方问,有人可以解释和讨论默认、本地和环境之间的区别吗?

是否有一个词用于区分这些类型的属性值,即“默认”是属性值“类型”还是什么?

除了这三种之外,还有其他属性值类型吗?

4

1 回答 1

0

我的,你有多么迷人的个人资料。;)

我只想提一下,您可以使用命名空间DependencyPropertyHelper.GetValueSource(DependencyObject, DependencyProperty)中的静态帮助器方法获取有关依赖属性值来源的一些信息System.Windows

“默认”本质上意味着没有指定源,因此该值取自某些内置源。请注意,一些默认值是动态生成的,而不是恒定的。“本地”是在该特定依赖对象中显式设置值时,覆盖它将继承的任何值。“环境”是指值来自其他来源(例如样式)时。我将它们之间的区别称为不同的基本价值来源。

是的,不仅仅是这三个。例如,如果您将属性TextBlock.FontFamily="Arial"放在Window标签中,则该窗口中的文本块将从它继承该值。当您在属性面板中观察属性并滚动框时,它会显示“继承”。请注意,与“环境”一样,该框仍然是绿色的。

实际上有一个枚举可以帮助阐明各种可能的基值来源。它被称为BaseValueSource

于 2018-08-02T16:29:41.373 回答