wpf - WPF,将焦点设置在 TabControl 的内容上
问题描述
我想将焦点设置为TabControl
当前选择TabItem
的内容。
我正在通过 绑定项目ItemsSource
,因此我无法简单地访问TabItem
s 本身;
我也不能调用Focus()
,TabControl
因为它关注的是TabControl
自身而不是其内容(为此我做了一个粗略但有效的检查 - 制作了一个 DispatcherTimer,它每秒发出一次当前关注的项目)。
实际上,我想达到与单击当前选定选项卡的标题相同的效果。我怎么能做到这一点(当然不是通过模拟点击来做那么快速和肮脏的事情)?
解决方案
您可以扩展您的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);
}
推荐阅读
- arrays - 如何将真实数据(不是测试数据)附加到 SwiftUI 中的列表?
- hyperledger-fabric - 重启 BYFN 网络后,chaincode 中更改的代码不费力?
- java - 如何使用 Java 通过 MongoDB 中的嵌入式数组过滤文档
- wordpress - 类别变化标签出库存 Woocommerce
- linux - 为远程设备开发 qt 应用程序
- javascript - 父子关系和在对象查看器中导航
- node.js - node.js multer上传后无法显示图像
- javascript - SvelteJS 是否将第三方库代码转换为纯 Javascript?
- mysql - ELK 和 mysql gepoint
- r - 在R中生成多行向量的函数