当WPF/C#中的任何UI元素发生更改时,是否会触发任何事件?

当WPF/C#中的任何UI元素发生更改时,是否会触发任何事件?,c#,wpf,events,user-interface,C#,Wpf,Events,User Interface,我有一个WPF应用程序,其中有很多文本框和组合框,它们构成了UI。我有一个“保存”按钮,每当这些文本框或组合框的任何内容发生变化时,我都想将其变为红色。是否有一个事件我可以处理,这样我就不必写了 btnSave.Foreground = Brushes.Red 对于每个文本框的_TextChanged事件?您可以通过循环表单的子控件来循环表单上的所有文本框,并相应地绑定事件 //-- This is a hair on the pseudo side, ChangeSavebuttonToRe

我有一个WPF应用程序,其中有很多文本框和组合框,它们构成了UI。我有一个“保存”按钮,每当这些文本框或组合框的任何内容发生变化时,我都想将其变为红色。是否有一个事件我可以处理,这样我就不必写了

btnSave.Foreground = Brushes.Red

对于每个文本框的_TextChanged事件?

您可以通过循环表单的子控件来循环表单上的所有文本框,并相应地绑定事件

//-- This is a hair on the pseudo side, ChangeSavebuttonToRedHandler is an event 
//-- handler for your foreground change.. You can also use a lambda or whatever 
//-- you'd like.
foreach(var loChild in this.Controls)
{
    if(loChild is TextBox)
    {
        loChild.TextChanged += ChangeSaveButtonToRedHandler;
    }
}

有很多方法可以做到这一点。最好的办法是了解
“WPF中的冒泡和隧道”以及
“附加事件”的用法。以下是一些参考资料:

这个链接有你所需要的一切。


干杯

使用“混合”创建行为。见: