wpf 點擊button, textbox會失去焦點
时间: 2024-10-11 17:02:53 浏览: 14
在 WPF 中,如果你希望在一个按钮点击事件(Button.Click)发生时,让 `TextBox` 控件自动失去焦点,你可以通过添加事件处理器来实现这个功能。首先,在 XAML 文件中找到包含 Button 和 TextBox 的布局部分,然后绑定 Button 的 Click 事件到一个名为 `SetFocusOnButtonClick` 的方法:
```xaml
<Button Content="Click to Clear TextBox Focus" Click="SetFocusOnButtonClick"/>
<TextBox x:Name="myTextBox" />
```
接下来,在对应的 `.cs` 文件中编写 `SetFocusOnButtonClick` 方法,当按钮被点击时,会将 TextBox 的焦点移除:
```csharp
private void SetFocusOnButtonClick(object sender, RoutedEventArgs e)
{
myTextBox.Focus();
myTextBox.SelectionStart = myTextBox.Text.Length; // 移动光标到末尾
}
```
这里我们调用了 `Focus()` 方法使 TextBox 获取焦点,同时使用 `SelectionStart` 属性将光标移动到文本框的末尾,这样看起来像是用户自然地停止了输入。
相关问题
WPF textbox点击回车键后失去焦点
如果你希望在 WPF 中的 TextBox 控件中按下回车键后使其失去焦点,可以使用 PreviewKeyDown 事件和 Keyboard 类。
以下是一种实现方式:
```xml
<Window x:Class="WpfApp1.MainWindow"
...
>
<Grid>
<TextBox x:Name="textBox" PreviewKeyDown="TextBox_PreviewKeyDown"/>
</Grid>
</Window>
```
在代码中,我们创建了一个 TextBox 控件,并为其添加了 PreviewKeyDown 事件处理程序。
```csharp
private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
Keyboard.ClearFocus();
}
}
```
在 TextBox 的 PreviewKeyDown 事件处理程序中,我们判断按下的键是否是回车键。如果是,我们调用 Keyboard 类的 ClearFocus 方法,使 TextBox 失去焦点。
通过上面的实现,我们就可以在按下回车键后使 TextBox 失去焦点了。当然,你也可以通过其他方式实现相同的效果,比如使用事件触发器等。
WPF textbox点击回车键后失去焦点 请使用样式
如果你想使用样式来实现 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 控件进行样式的统一和管理。
阅读全文