Callisto настраиваемый диалог
Как сосредоточиться на элементе в пользовательском диалоге?
Я пытаюсь использовать edGroupName.Focus(FocusState.Keyboard / Programmatic) до и после открытия. Это не работа.
//NewGroup is <callisto:CustomDialog>
NewGroup.IsOpen = true;
//edGroupName is <TextBox>
edGroupName.Focus(FocusState.Keyboard);
1 ответ
Когда вы установите .IsOpen
диалоговое окно не открывается сразу же, до тех пор, пока вы не покинете свой метод и управление не вернется в цикл обработки событий. Поэтому, когда вы звоните .Focus()
текстовое поле на самом деле еще не видно. Вы должны отложить .Focus()
звоните, пока текстовое поле не появится на экране.
Это работает для меня:
NewGroup.IsOpen = true;
await Task.Factory.StartNew( () => Dispatcher.RunAsync( CoreDispatcherPriority.Low,
() => edGroupName.Focus( FocusState.Keyboard ) ) );