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