在软件设计开发的时候,偶尔会遇到在后台xaml.cs后台中,要将TextBox控件的焦点取消或者使TextBox控件获取焦点,下面介绍讲述一种简单的“只让特定的 TextBox 失去焦点”方法:
前端xaml代码示例:
<StackPanel Orientation="Horizontal"><TextBox Width="60" Height="30" x:Name="point12"/>
</StackPanel>
后端xaml.cs代码示例:在重载OnMouseMove事件中,使TextBox控件失去焦点。
protected override void OnMouseMove(MouseEventArgs e)
{Application.Current.Dispatcher.BeginInvoke(new Action(() =>{// 找到你的TextBoxTextBox myTextBox = FindName("point12") as TextBox;if (myTextBox != null){myTextBox.Focusable = false;myTextBox.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));myTextBox.Focusable = true;}}));
}
软件运行后,鼠标左键点击,在TextBox输入框中,此时TextBox控件获取到焦点,鼠标移动后,焦点会自动消失。