TextBox focus listener

<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:custom="clr-namespace:WpfApplication1"
Title="Keyboard Sample" Height="250" Width="300">
<StackPanel>
<Label Name="lblNumberOfTargetHits" HorizontalAlignment="Center"/>
<TextBox Name="txtTargetKey" GotKeyboardFocus="TextBoxGotKeyboardFocus" LostKeyboardFocus="TextBoxLostKeyboardFocus">A</TextBox>
<TextBox TextWrapping="Wrap" GotKeyboardFocus="TextBoxGotKeyboardFocus" LostKeyboardFocus="TextBoxLostKeyboardFocus" KeyDown="SourceTextKeyDown"/>
</StackPanel>
</Window>
//File:Window.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Windows.Annotations;
using System.Windows.Input;
namespace WpfApplication1
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void TextBoxGotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
TextBox source = e.Source as TextBox;
if (source != null)
{
source.Background = Brushes.LightBlue;
source.Clear();
}
}
private void TextBoxLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
TextBox source = e.Source as TextBox;
if (source != null)
{
source.Background = Brushes.White;
}
}
private void SourceTextKeyDown(object sender, KeyEventArgs e)
{
KeyConverter converter = new KeyConverter();
Key target = Key.None;
if (txtTargetKey.Text.Length == 1)
{
target = (Key)converter.ConvertFromString(txtTargetKey.Text);
}
}
}
}
Related examples in the same category
1. | TextBox Style | |  |
2. | Bind TextBlock to TextBox | |  |
3. | TextBox with custom ErrorTemplate and ToolTip | |  |
4. | TextBox uses the ExceptionValidationRule and UpdateSourceExceptionFilter handler | |  |
5. | TextBox with UpdateSourceExceptionFilter handler | |  |
6. | TextBox with default ErrorTemplate | |  |
7. | TextBox MouseLeftButtonDown action and PreviewMouseLeftButtonDown action | |  |
8. | Assign your own class to DataContent and bind to TextBox | |  |
9. | Listen to TextBox text changed event | |  |
10. | Handler for the PreviewKeyDown event on the TextBox | |  |
11. | TextBox: set text, select all, clear, prepend, insert, append, cut, paste, undo | |  |
12. | Set TextBox to editable | |  |
13. | TextBox text changed event | |  |
14. | TextBox PreviewKeyDown | |  |
15. | TextBox KeyDown | |  |
16. | TextBox PreviewKeyUp | |  |
17. | TextBox KeyUp | |  |
18. | TextBox TextInput | |  |
19. | TextBox PreviewTextInput | |  |
20. | Scroll TextBox | |  |
21. | TextBox TextChanged event | |  |
22. | Use Dictionary to record which textbox has been changed and not saved | |  |
23. | Set TextBox ContextMenu to null | |  |
24. | TextBox Selection start, end and selected text | |  |
25. | Scrollable TextBox Column | |  |
26. | TextBox PreviewKeyDown, PreviewKeyUp, PreviewTextInput, KeyDown, KeyUp and TextChanged events | |  |
27. | Check Spelling Error | |  |