【发布时间】:2017-01-30 19:04:00
【问题描述】:
我正在代码隐藏中创建一个样式,它是“BasedOn”相同 TargetType 的全局资源样式。新样式具有与原始样式相同的所有属性,另外还有一个独特的 Setter。不过,似乎 Setter 并没有复制到我的新样式中,这迫使我遍历所有原始 Setter,并将它们作为新的 Setter 添加到我的样式中。有没有更好的方法来完成这种行为?
Style defaultStyle = Application.Current.FindResource("NumericFieldStyle") as Style;
Style decimalStyle = new Style(typeof(XamMaskedEditor), defaultStyle);
// No setters in decimalStyle? There were 6 in defaultStyle
foreach (SetterBase setter in defaultStyle.Setters)
decimalStyle.Setters.Add(setter);
【问题讨论】:
-
如果您不在循环中添加设置器,它们是否应用在 UI 中?我可能猜测继承是通过链接到 BasedOn 样式而不是通过创建它的克隆来工作的。我会研究一下。
-
啊……我觉得很傻。是的,它确实适用于 UI,尽管在调试时并不明显。这应该有助于我的编码冒险。谢谢!
标签: c# wpf infragistics