你怎么知道你的WPF控件是否被渲染?

时间:2008-12-24 16:06:49

标签: wpf

我有2个标签项。在选项卡No.1中,我有一个控件,它对应于窗口调整大小事件,需要调用PointToScreen()。

问题是选项卡2是活动的并且我调整窗口大小,选项卡1中的控件反应并失败,因为它的'可视化没有被渲染,我得到“这个Visual没有连接到PresentationSource”异常。

在我打电话给PointoScreen之前,你知道如何检查这个案例吗?

由于 爱丽儿

3 个答案:

答案 0 :(得分:14)

您可以选中“IsVisible” - 这不是用于比较visibility属性的快捷方式,而是告诉您是否在屏幕上呈现了该东西。我不完全确定这如何影响UIElements的虚拟化,但我认为它正确地了解了这些情况。

答案 1 :(得分:0)

我执行此操作的方式是在后面的代码中,根据所选的选项卡添加和删除事件处理程序。选择Tab1时,在窗口调整大小事件的控件上执行AddHandler,当取消选择Tab1时(即前面有另一个选项卡),为控件执行RemoveHandler。

答案 2 :(得分:0)

我遇到了与此异常类似的问题。 我订阅了选项卡控件的SelectedChanged事件 并不意味着WPF中的选择发生了变化。 见http://dotbay.blogspot.com/2009/10/in-wpf-selectionchanged-does-not-mean.html 更多细节。希望对你有帮助。 亚历克斯。