我在画布内加载了一个用户控件;默认情况下,此用户控件的可见性已折叠。当我的窗口的特定文本框聚焦时,用户控件变得可见。
当用户控件变得可见时,我想将焦点设置到用户控件内的另一个文本框。
我尝试这样做:
private void UserControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (this.Visibility == Visibility.Visible)
{
FocusManager.SetFocusedElement(this, TextBlockInput);
}
}
这似乎有效,但有一个问题:文本框似乎已聚焦,但文本框中的光标不闪烁,并且我无法键入字符进行输入。
我希望焦点之后文本框就可以输入了。我能怎么做?
嗯,我是这样解决的:
private void UserControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (this.Visibility == Visibility.Visible)
{
this.Dispatcher.BeginInvoke((Action)delegate
{
Keyboard.Focus(TextBlockInput);
}, DispatcherPriority.Render);
}
}
我认为问题在于焦点调用 IsVisibleChanged 事件“范围”......对吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)