这是一个MVVM WPF问题。,c#。 在一个窗口中,我有一个看起来像这样的Tab控件
<TabControl TabStripPlacement="Top" >
<TabItem Style="{StaticResource Tabitemstyle}">
<TabItem.Header>
<Label Content="Home" Style="{StaticResource Tablablestyle}"/>
</TabItem.Header>
<v:HomePageView/>
</TabItem>
<TabItem ....
<v:OtherPageView/>
诀窍是第二个标签项中存在一个文本框,当用户选择第二个标签时,我希望它具有输入焦点。
我尝试了一些解决方案,但到目前为止最接近的解决方案(使用数据触发器样式或聚焦元素)几乎可以使用:
我可以看到光标是在文本框内,但它不会闪烁。似乎焦点仍然在外部窗口中的选项卡控件上,而不是由OtherPageView.xaml定义的视图中的文本框元素。当我点击一次tab时,一切正常,但这就是我试图减轻用户不得不做的事情。
答案 0 :(得分:1)
我会使用背后的代码:
收听TabItem内容上的可见性更改事件(即v:HomePageView)
找到文本框UI元素(您可以简单地为文本框命名 在xaml中并从后面的代码中引用它
接下来,使用UIElement.Focus()方法将焦点设置在文本框上
最后如果键盘没有对焦,那么使用 Keyboard.Focus(...)方法将键盘聚焦在文本框上。