2012-07-30 48 views
0

在我的WPF窗口上,當光標位於文本框上時,我希望文本框具有稍微藍色的背景。我創建了兩個簡單的事件處理程序(GotFocus和LostFocus)來執行此操作。WPF中的集體事件處理程序

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; 
     } 

有沒有一種方法可以將每個文本框直接指向給相應文本框的背景的一個事件處理程序?

回答

1

很簡單。把事件掛鉤所有的文本框的最外層容器上:

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

爲了使它在正確的文本操作,鑄就了「發件人」參數爲一個文本框:

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

的問題是在我的代碼中,它設置了textbox1的背景。我怎樣才能讓它設置無論哪個文本框觸發事件的背景? – Wilson 2012-07-30 19:22:38

+0

看到我的編輯如何做到這一點 – 2012-07-30 19:33:05

+0

哦,那人比我想象的要容易得多。謝謝! – Wilson 2012-07-30 19:34:31