XAML属性值:默认值、本地值与环境值及属性值来源查询
XAML属性面板方块标记详解
嘿,刚好对这个属性面板的标记门儿清!我来给你补全绿色方块的含义,顺便把这几个标记的逻辑捋明白,帮你更快定位XAML属性值的来源:
- 白色方块:正如你发现的,代表属性使用的是默认值——也就是控件原生的初始值,没有被任何自定义操作修改过。
- 黑色方块:对应你提到的「local(本地值)」,说明这个属性值已经被手动修改过了,不管是直接在XAML标签里写的属性值,还是在后台代码里通过
SetValue方法设置的,都属于这类。这种修改会覆盖默认值,而且如果是XAML里的修改,你直接去对应标签里就能找到代码。 - 绿色方块:这个代表的是继承/间接绑定值!简单来说,这个属性值不是你直接在当前元素上设置的,而是来自这几个渠道:
- 从父元素继承的属性(比如字体大小、前景色这类属性经常会从父容器继承);
- 通过样式(
Style)、控件模板(ControlTemplate)里的Setter设置的值; - 通过数据绑定(
Binding)获取到的值; - 或者是由主题资源(Theme Resource)提供的值。
另外给你个小技巧:如果想快速定位属性值的具体来源,右键点击属性面板里的目标属性,选择「跟踪依赖属性来源」或者「查看定义」,就能直接跳转到赋值的代码位置,不管是样式文件、绑定语句还是后台代码,都能一键找到,比自己挨个找高效太多啦!
内容的提问来源于stack exchange,提问作者Kyle Delaney
相关产品推荐
相关产品推荐

