Luc*_*ini 18 wpf user-controls textbox focus input
我在画布中加载了一个usercontrol; 默认情况下,此usercontrol的可见性已折叠.当我的窗口的特定文本框被聚焦时,用户控件变得可见.
当usercontrol变得可见时,我想将焦点设置到usercontrol中的另一个文本框.
我试着这样做:
private void UserControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (this.Visibility == Visibility.Visible)
{
FocusManager.SetFocusedElement(this, TextBlockInput);
}
}
Run Code Online (Sandbox Code Playgroud)
它似乎有用,但有一个问题:文本框看起来很集中,但光标到文本框不会闪烁,我不能输入字符输入.
我想在焦点后文本框已准备好输入.我能怎么做?
Luc*_*ini 34
好吧,我这样解决:
private void UserControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (this.Visibility == Visibility.Visible)
{
this.Dispatcher.BeginInvoke((Action)delegate
{
Keyboard.Focus(TextBlockInput);
}, DispatcherPriority.Render);
}
}
Run Code Online (Sandbox Code Playgroud)
我认为问题是焦点调用IsVisibleChanged事件"范围"......对吗?
| 归档时间: |
|
| 查看次数: |
9236 次 |
| 最近记录: |