私は、同じTargetTypeのグローバルリソーススタイルである "BasedOn"というコードビハインドでスタイルを作成しています。新しいスタイルには、元のものと同じプロパティーと、独自のSetterが1つ追加されています。セッターは私の新しいスタイルにコピーされていないので、元のセッターをすべてループして新しいセッターとして私のスタイルに追加するように強制しているようです。この動作を達成するためのより良い方法はありますか?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);
ループにセッターを追加しない場合は、UIに適用されるかどうかは関係ありませんか?継承は、Cloneを作成するのではなく、BasedOnスタイルにリンクすることで継承が機能すると推測できます。私はそれを研究するだろう。 –
ああ...私はとても愚かな気がする。はい、UIには適用されますが、デバッグ時には明白ではありません。これはコーディングの冒険に役立ちます。ありがとうございました! – Danielle