3

我在这里有一些概念问题。我知道如何选择 inTextBox或 in 中的所有文本PasswordBox。通过GotKeyboardFocusPreviewMouseLeftButtonDown事件,你知道的。这工作正常。

XAML:

PreviewMouseLeftButtonDown="PasswordOnPreviewMouseDown"
GotKeyboardFocus="SelectAllPassword"

代码隐藏

private void SelectAllPassword(Object sender, RoutedEventArgs e)
{
    var pb = (sender as PasswordBox);
    if (pb != null)
        pb.SelectAll();
}

private void PasswordOnPreviewMouseDown(Object sender, MouseButtonEventArgs e)
{
    var pb = (sender as PasswordBox);
    if (pb != null)
        if (!pb.IsKeyboardFocusWithin)
        {
            e.Handled = true;
            pb.Focus();
        }
}

但问题是 - 为什么不起作用?

XAML:

PreviewMouseLeftButtonDown="PasswordOnPreviewMouseDown"

代码隐藏:

private void PasswordOnPreviewMouseDown(Object sender, MouseButtonEventArgs e)
{
    _txtPassword.SelectAll();
    e.Handled = true;
}

在哪里_txtPassword-TextBoxPasswordBox控制。那么为什么我要强制Focus文本控制呢?

4

1 回答 1

3

实际上,选择是有效的。

您可能会觉得文本没有被选中,因为它没有在视觉上突出显示,但那是因为TextBox没有聚焦。

尝试TextBox使用Tab键将注意力集中在您身上,您会看到整个文本突出显示。

于 2014-05-13T10:26:32.807 回答