我有一个TabControl
包含棱镜区域。我想为某些事件触发某种通知(例如闪烁选项卡标题),并且我想从 Prism 区域中的组件触发此通知。
一旦包含此类组件的选项卡打开一次,它就可以很好地使用VisualTreeUtil.GetParent()
并向上运行,直到我找到我的TabControl
并可以对其进行修改以指示通知。
但问题是这在用户打开选项卡之前不起作用,因为VisualTreeUtil.GetParent()
返回 null;显然是因为 Prism 直到那时才连接视觉树。
调用包含UpdateLayout()
该TabItem
区域并没有帮助。我不想以编程方式打开 TabItems,因为这会使用户感到困惑。
除了实施一种区域注册表(这会相当丑陋且难以维护)之外,我还能做些什么吗?
如果您想查看代码,我编写了一个最小的解决方案来演示该问题。Print Structure按钮尝试从第二个选项卡上的(最初未渲染的不可见的)hello TextBlock 向上移动可视化树。在您切换到选项卡之前,它只打印 TextBlock,然后您会到达可视树的根目录。这就是我想要在不切换到选项卡的情况下完成的任务。