我需要在更改控件样式时通知我的应用程序。我需要在更改WPF控件的样式时执行一些操作。我可以应用一些eventtriggers或通知某种方式。
最好的问候
答案 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
,也可以为此创建自定义附加属性。