如何在WPF中找到影响控件外观的样式?

5
如果有很多样式影响相同的控件,最好的方法是在运行时确定使用的样式。在设计时找到正确的样式似乎很难,因为应用的样式和画刷可能应用在不同的级别。
例如: 我有一个数据网格,由行和单元格组成。当我悬停在单元格上时,它会影响边框厚度(从0,0,1,1到0,0,1,0),我似乎找不到影响变化的样式。
1个回答

4
我通常使用Snoop来在运行时调试我的应用程序。它会告诉您当前属性值以及它来自哪里(尽管有时它可能有点模糊,例如仅显示“继承”而不是被谁继承)。
但通常您只能将Style设置为单个值,并且最多只能基于一个样式BasedOn,因此我并不经常遇到这个问题。
另一个有用的资源是Dependency Property Precedence List,可以帮助诊断在多个位置设置相同属性时哪些值具有优先权。

我正在使用Snoop,但它只显示从ParentTemplate派生的内容,在这种情况下并没有太多帮助。 - skjagini
看起来除了逐个消除样式之外,没有其他的方法。 - skjagini
依赖属性优先级列表链接已失效。 - johnildergleidisson
@JoaoMilasch 谢谢,我已经修复了。 - Rachel
如果你是第一次使用Snoop,你应该查看Ctrl+Shift的提示来检查元素:https://www.cplotts.com/2011/02/10/snoop-tips-tricks-1-ctrl-shift-mouse-over/ - FluffyBike

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接