输入监听
在 WPF 中,你可以使用 TextChanged 事件来监听 TextBox 内容的变化。你可以在 XAML 中指定事件处理程序,也可以在代码中动态添加事件处理程序。下面是一个简单的示例:
1
| <TextBox TextChanged="TextBox_TextChanged" />
|
然后在对应的代码文件中:
1 2 3 4
| private void TextBox_TextChanged(object sender, TextChangedEventArgs e) { }
|
这样,当用户在文本框中输入文本时,TextBox_TextChanged 方法将被调用。
监听Enter和Tab
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| InputTb.PreviewKeyDown += InputTb_PreviewKeyDown; private void InputTb_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { MessageBox.Show("Enter 被按下了"); e.Handled = true; } else if (e.Key == Key.Tab) { MessageBox.Show("Tab 被按下了"); e.Handled = true; } }
|
只能输入数字
前台UI设置
1 2 3 4 5 6 7
| <TextBox Width="100" Height="30" PreviewTextInput="TextBox_PreviewTextInput" PreviewKeyDown="TextBox_PreviewKeyDown" InputMethod.IsInputMethodEnabled="False" />
|
其中
InputMethod.IsInputMethodEnabled="False"禁用输入法
后台代码限定只能输入数字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| private void TextBox_PreviewTextInput ( object sender, TextCompositionEventArgs e ) { if (!short.TryParse( e.Text, out short _ )) e.Handled = true; }
private void TextBox_PreviewKeyDown ( object sender, KeyEventArgs e ) { if (e.Key == Key.Space) e.Handled = true; }
|
样式
文字居中
1 2 3 4
| <TextBox Padding="10,0,10,0" VerticalContentAlignment="Center" MaxLines="1" />
|
行高设置
1 2 3 4
| <TextBox Padding="10" Text="{Binding SelectAnsStr}" TextBlock.LineHeight="20" />
|