WPF,将焦点设置为TabControl';内容

WPF,将焦点设置为TabControl';内容,wpf,focus,tabcontrol,Wpf,Focus,Tabcontrol,我想将焦点设置为TabControl当前选定的TabItem的内容 我通过itemsource绑定项目,因此我无法简单访问TabItems本身 我也不能在TabControl上调用Focus(),因为它聚焦TabControl本身而不是它的内容(对于这一个,我做了一个粗略但有效的检查-制作了一个Dispatcher,它每秒发出一次当前聚焦项) 实际上,我希望达到与单击当前所选选项卡标题相同的效果。我怎样才能做到这一点(当然,不要通过模拟点击来实现快速和肮脏)?您可以扩展选项卡控件并覆盖OnSel

我想将焦点设置为
TabControl
当前选定的
TabItem
的内容

我通过
itemsource
绑定项目,因此我无法简单访问
TabItem
s本身

我也不能在
TabControl
上调用
Focus()
,因为它聚焦
TabControl
本身而不是它的内容(对于这一个,我做了一个粗略但有效的检查-制作了一个Dispatcher,它每秒发出一次当前聚焦项)


实际上,我希望达到与单击当前所选选项卡标题相同的效果。我怎样才能做到这一点(当然,不要通过模拟点击来实现快速和肮脏)?

您可以扩展
选项卡控件
并覆盖
OnSelectionChanged
方法

protected override void OnSelectionChanged(SelectionChangedEventArgs e)
{
    //TODO: Ignore this event on load.

    if (e.AddedItems.Count > 0)
        ((e.AddedItems[0] as TabItem)?.Content as UIElement)?.Focus();

    base.OnSelectionChanged(e);
}

您可以扩展
TabControl
并覆盖
OnSelectionChanged
方法

protected override void OnSelectionChanged(SelectionChangedEventArgs e)
{
    //TODO: Ignore this event on load.

    if (e.AddedItems.Count > 0)
        ((e.AddedItems[0] as TabItem)?.Content as UIElement)?.Focus();

    base.OnSelectionChanged(e);
}

这回答了你的问题吗@帕夫拉尼霍斯基似乎不是这样。该问题询问如何选择选项卡。我问的是如何聚焦已选选项卡的内容。是否要始终将焦点设置在所选选项卡的
TabItem
内容上,还是在需要时?@Spook能否提供选项卡项的xaml?@Spook,不是
((this.yourTabControl.SelectedItem作为TabItem)。content作为UIElement)。focus()为你工作?这能回答你的问题吗@帕夫拉尼霍斯基似乎不是这样。该问题询问如何选择选项卡。我问的是如何聚焦已选选项卡的内容。是否要始终将焦点设置在所选选项卡的
TabItem
内容上,还是在需要时?@Spook能否提供选项卡项的xaml?@Spook,不是
((this.yourTabControl.SelectedItem作为TabItem)。content作为UIElement)。focus()为你工作?