在大型的WPF-项目设置中,填充按钮不会产生任何影响。没有样式,模板等设置在按钮上,但它仍然不会使用我的填充。
<StackPanel>
<Button Padding="20, 20">Hello</Button>
</StackPanel>我在一个全新的项目中尝试过这个,它的效果就像一种魅力。显然,在项目中的某个地方有某种全局样式,模板导致了这种情况。无论是在xaml文件中的某个地方,还是在某个资源文件中。由于这个项目相当庞大,所以我每件事都不可能完成。
如何调试这个?我能看看是什么覆盖了垫子吗?
我试着用Snoop 2.7.0四处窥探,但它并没有告诉我多少。对于如何处理这类错误有任何提示吗?
编辑
我向ValueSource查询了一些属性:
发布于 2012-03-22 10:22:03
这个特殊的问题是由App.xaml中包含的资源中定义的样式造成的。
这里的重要教训是,没有x:Key属性的样式将影响目标类型的所有元素,正如所描述的这里。
在<Style*TargetType="*Button上执行广泛的通配符搜索会产生可能影响我的按钮的潜在样式列表。我找到了一个没有x:Key属性的,注释掉了,只是想看看!垫子起作用了。
发布于 2012-03-22 09:14:32
DependencyPropertyHelper.GetValueSource方法呢?
http://msdn.microsoft.com/en-us/library/system.windows.dependencypropertyhelper.getvaluesource.aspx
发布于 2012-03-22 09:42:13
MSDN中有一个关于依赖属性值优先的页面。
这个问题为什么重要呢?当涉及到依赖属性值时,很少有人真正知道优先级的顺序。
例如,您知道在DP的CoerceValueCallback中设置的任何值都会覆盖任何其他集合吗?
我建议你浏览这个链接,从顶部开始(最强的一组,覆盖任何东西)到底部(最弱的一组,会被任何东西覆盖),在那里有一个你的值被设定的水平。
但是,如果你看看名单,你会注意到你已经排在第三位了!局部值所以你只有两个层次:动画和价值强制;)
https://stackoverflow.com/questions/9819110
复制相似问题