如何确定控件何时对用户可见?
Posted
技术标签:
【中文标题】如何确定控件何时对用户可见?【英文标题】:How to figure out when control is visible to user? 【发布时间】:2013-02-10 12:36:14 【问题描述】:我想知道如何确定控件何时对用户可见,何时不可见?
假设我正在编写一个扩展 TextBox
的自定义控件,我想知道何时可见,以便在可见更改触发的处理程序内执行一些自定义逻辑。
怎么做?如何确定控件是否对用户可见?例如,扩展TextBox
的自定义控件可以在Button
内部,Button
可以接收Visibility.Collapsed
,因此它的所有内部嵌套控件都是不可见的,这就是我想知道的。无论 Visibility 属性设置什么值,如何判断是否可见?
【问题讨论】:
【参考方案1】:您应该使用UIElement.IsVisibleChanged
事件。它发生在IsVisible
的值更改为只读依赖属性并指示元素在 UI 上的可见性时。 UIElement.LayoutUpdated
- 可用于重新计算控件可见性的事件。
更新。 似乎完全一样:In WPF, how can I determine whether a control is visible to the user?
【讨论】:
我编辑了我的问题。我不是在谈论可见性属性。我说的是一般的能见度。顺便说一句,您指向 IsVisibleChanged 的链接不起作用 @hedgehog 好的。现在我明白你的意思了。已更新。 这只是我必须明确调用以确定是否可见的方法。如果可见与否,我希望得到 WPF 的通知。 @hedgehog 您可以在父级Window
上的LayoutUpdated
中使用此方法。
在父窗口的Layoutupdated中使用这个方法到底是什么意思?以上是关于如何确定控件何时对用户可见?的主要内容,如果未能解决你的问题,请参考以下文章