Внимание на TextBox, когда UserControl изменяют Видимость

У меня есть usercontrol, загруженный в холсте; этому usercontrol на значении по умолчанию свернули видимость. Когда определенное текстовое поле моего окна фокусируется, usercontrol становятся видимыми.

Когда usercontrol становятся видимыми, я хочу фокус набора к другому текстовому полю внутри usercontrol.

Я пытаюсь сделать это:

private void UserControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
        if (this.Visibility == Visibility.Visible)
        {                
            FocusManager.SetFocusedElement(this, TextBlockInput);
        }
}

Это кажется работой, но существует проблема: текстовое поле кажется сфокусированным, но курсор в текстовое поле не мигает, и я не могу ввести символы для входа.

Я был бы это после фокуса, текстовое поле готово к входу. Как я могу сделать?

18
задан Luca Petrini 24 June 2010 в 10:24
поделиться

2 ответа

Что ж, я решаю следующим образом:

private void UserControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
    if (this.Visibility == Visibility.Visible)
    {
        this.Dispatcher.BeginInvoke((Action)delegate
        {
            Keyboard.Focus(TextBlockInput);
        }, DispatcherPriority.Render);
    }
}

Я думаю, что проблема заключалась в вызове фокуса в "области" события IsVisibleChanged ... верно?

34
ответ дан 30 November 2019 в 07:38
поделиться

try

Keyboard.Focus(TextBlockInput);

см. подробнее здесь

1
ответ дан 30 November 2019 в 07:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: