如何关注自定义对话框中的元素?
我尝试在打开之前和之后使用 edGroupName.Focus(FocusState.Keyboard / Programmatic)。它不起作用。
//NewGroup is <callisto:CustomDialog>
NewGroup.IsOpen = true;
//edGroupName is <TextBox>
edGroupName.Focus(FocusState.Keyboard);
答案 0 :(得分:0)
当您设置.IsOpen
时,对话框不会立即打开 - 直到您离开方法并且控件返回事件循环为止。因此,当您致电.Focus()
时,文本框实际上尚未显示。您必须延迟.Focus()
来电,直到文本框出现在屏幕上。
这对我有用:
NewGroup.IsOpen = true;
await Task.Factory.StartNew( () => Dispatcher.RunAsync( CoreDispatcherPriority.Low,
() => edGroupName.Focus( FocusState.Keyboard ) ) );