0

在我的 WPF 窗口中,当光标位于文本框上时,我希望文本框具有略带蓝色的背景。为此,我创建了两个简单的事件处理程序(GotFocus 和 LostFocus)。

private void textBox1_GotFocus(object sender, RoutedEventArgs e)
        {
            textBox1.Background = (Brush)new BrushConverter().ConvertFrom("#FFE6E6FF");
        }

        private void textBox1_LostFocus(object sender, RoutedEventArgs e)
        {
            textBox1.Background = Brushes.White;
        }

有没有一种方法可以将每个文本框定向到一个事件处理程序,该事件处理程序为相应的文本框提供背景?

4

1 回答 1

1

很简单。将事件挂钩放在所有文本框的最外层容器上:

<Window TextBox.GotFocus="textBox1_GotFocus" TextBox.LostFocus="textBox1_LostFocus">
   <TextBox ... >
   <TextBox ... >
   <TextBox ... >
</Window>

要使其在正确的文本框上运行,请将“sender”参数转换为文本框:

private void textBox1_GotFocus(object sender, RoutedEventArgs e)
{
    ((TextBox)sender).Background = (Brush)new BrushConverter().ConvertFrom("#FFE6E6FF");
}
于 2012-07-30T19:19:41.800 回答