Bootstrap

WPF 在后台使TextBox失去焦点的方法

在软件设计开发的时候,偶尔会遇到在后台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(() =>
    {
	    // 找到你的TextBox
	    TextBox myTextBox = FindName("point12") as TextBox;
	    if (myTextBox != null)
	    {
		    myTextBox.Focusable = false;
		    myTextBox.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
		    myTextBox.Focusable = true;
	    }
    }));
}

软件运行后,鼠标左键点击,在TextBox输入框中,此时TextBox控件获取到焦点,鼠标移动后,焦点会自动消失。


;