WPF textbox点击回车键后失去焦点 请使用样式
时间: 2024-03-21 20:41:39 浏览: 148
如果你想使用样式来实现 WPF 中的 TextBox 控件在按下回车键后失去焦点,可以使用样式和触发器。
以下是一种实现方式:
```xml
<Window x:Class="WpfApp1.MainWindow"
...
>
<Window.Resources>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="IsKeyboardFocused" Value="True">
<Setter Property="PreviewKeyDown" Value="TextBox_PreviewKeyDown"/>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<TextBox x:Name="textBox"/>
</Grid>
</Window>
```
在代码中,我们创建了一个 TextBox 控件,并为其添加了一个样式。在样式中,我们使用了触发器来监听 IsKeyboardFocused 属性的变化。当 TextBox 控件获得焦点时,触发器会将 PreviewKeyDown 事件处理程序 TextBox_PreviewKeyDown 绑定到 TextBox 的 PreviewKeyDown 事件上。
```csharp
private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
Keyboard.ClearFocus();
}
}
```
在 TextBox 的 PreviewKeyDown 事件处理程序中,我们判断按下的键是否是回车键。如果是,我们调用 Keyboard 类的 ClearFocus 方法,使 TextBox 失去焦点。
通过上面的实现,我们就可以在按下回车键后使 TextBox 失去焦点了。使用样式可以让我们更加方便地对 TextBox 控件进行样式的统一和管理。
阅读全文