Я создаю стиль в коде, который является «BasedOn» глобальным стилем ресурса того же TargetType. Новый стиль имеет все те же свойства, что и оригинал, плюс один дополнительный сеттер, который уникален для него. Кажется, что Setters не копируются в мой новый стиль, заставляя меня перебирать все исходные Setters и добавлять их в качестве новых Setters в моем стиле. Есть ли лучший способ добиться такого поведения?WPF Style BasedOn потеряет сеттеры?
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);
Если вы не добавляете сеттеры в цикл, они применяются в пользовательском интерфейсе или нет? Я могу догадаться, что наследование работает, связываясь с стилем BasedOn, а не создавая клон этого. Я бы это исследовал. –
А ... Я чувствую себя очень глупо. Да, это применимо в пользовательском интерфейсе, хотя это не очевидно при отладке. Это должно помочь в моих приключениях к кодированию. Спасибо! – Danielle