WPF中的应用样式忽略属性

时间:2010-06-02 18:03:14

标签: wpf styles opacity border

这是难题。在我的应用程序的两个不同的地方,我使用具有完全相同外观的边框。在对代码膨胀和无法管理的代码的永无止境的斗争中,我想要在创建边框时使用的样式中定义边框的外观。奇怪的是,我设置的几个属性被忽略了。

这是我用来创建样式的代码。很简单。

Style borderStyle = new Style(typeof(Border));

borderStyle.Setters.Add(new Setter(Border.BorderBrushProperty, Brushes.Black));
borderStyle.Setters.Add(new Setter(Border.BorderThicknessProperty, new Thickness(4)));
borderStyle.Setters.Add(new Setter(Border.OpacityProperty, 1.0));

return borderStyle;

但是当我设置样式时,不透明度属性保留为原始值0.7。我也尝试将边框的背景设置为我创建的画笔。它也被忽略了。

感谢您提供的任何见解。

1 个答案:

答案 0 :(得分:1)

您提到的默认设置为0.7。显式设置的属性优先于Style属性。删除显式设置属性,应使用Style。

背景画笔也是如此,如果在元素上显式设置,则会覆盖样式值。

请参阅此处了解优先列表:http://msdn.microsoft.com/en-us/library/ms743230.aspx#listing