【发布时间】:2013-09-25 14:46:27
【问题描述】:
我们目前的情况是,我们有来自合作伙伴的 WPF 样式,我们可以覆盖这些样式进行自定义。
但是,在一种情况下,样式似乎后来被我们无权访问的代码覆盖。这意味着我对样式应用的任何更改都不会产生影响,因为稍后代码会进入并再次更改它。
问题是:有什么方法可以将样式标记为不可覆盖(可以这么说),所以无论代码中发生什么,某些属性值都将保持不变?
【问题讨论】:
-
我不认为这是可能的......不要忘记在运行时编码的 XAML 短语。
-
我认为唯一的方法(涉及编码)是拥有某种 OnStyleChanged 事件处理程序,并从那里取消更改。如果你确实得到了这样的事件处理程序,你可以进一步构建一个 DependencyProperty 来在 XAML 中标记它
-
他们在代码中所做的样式有意义吗?您是否只是要求他们不要在代码中覆盖?
-
@Blam,我们开发人员往往会忘记我们也可以与其他人交谈:P
-
它看起来是一个设计特性:公司让您创建/覆盖默认样式,但您不能覆盖某个部分。也许他们不希望你那样做。无论如何,为了做到这一点,他们必须明确地写一些东西来防止覆盖:它不是“免费的”。