单击wpf中的按钮时如何避免TextBox丢失焦点?

Cha*_*u A 4 wpf textbox

在此输入图像描述

现在光标聚焦在TextBox中.如果我单击按钮(RemoveLostFocus),TextBox的Lost焦点事件将被触发.但我需要的是,TextBox的Lost Focus事件不应该触发.有没有办法这样做?

private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        txtUserName.Focus();
    }

private void UserName_LostFocus(object sender, RoutedEventArgs e)
    {
        if (txtUserName.Text.Length < 1)
        {
            MessageBox.Show("UserName should not be empty");
        }
    }

    private void btnCancel_Click(object sender, RoutedEventArgs e)
    {
        this.Close();
                    anotherWindow.Show();
    }
Run Code Online (Sandbox Code Playgroud)

sa_*_*213 6

您将要使用的FocusManager附加属性将焦点应用到TextBox的时候Button更改焦点

例:

<StackPanel>
    <TextBox Name="txtbx" />
    <Button Content="Click Me!" FocusManager.FocusedElement="{Binding ElementName=txtbx}"/>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

使用此解决方案,TextBox即使Button按下并且TextBox LostFocus不会触发事件,也将始终聚焦