需要通知WPF控件的样式

时间:2016-10-21 10:23:31

标签: wpf c#-4.0

我需要在更改控件样式时通知我的应用程序。我需要在更改WPF控件的样式时执行一些操作。我可以应用一些eventtriggers或通知某种方式。

最好的问候

1 个答案:

答案 0 :(得分:0)

有一些可能的解决方案。

首先,如果想要在C#代码中的某个地方收到通知,您可以为控件的Style属性订阅更改处理程序:

DependencyPropertyDescriptor.FromProperty(Button.StyleProperty, typeof(Button))
    .AddValueChanged(btn, (s, e) =>
    {
        // Style has changed.
    });

(完成后别忘了拨打.RemoveValueChanged()。)

另一种方法是创建一个Binding,其源路径设置为您控件的Style。绑定目标可以是某种自定义控件或ViewModel,您可以在其中对更改做出反应。或者,如果您没有任何这些可用,您可以将绑定目标设置为某个Tag属性,并使用ValueConverter来使用Tag="{Binding Style, ElementName=btn, Converter={StaticResource MyStyleInterceptor}}"之类的内容拦截更改。

如果您不想滥用Tag,也可以为此创建自定义附加属性。