【问题标题】:How to figure out when control is visible to user?如何确定控件何时对用户可见?
【发布时间】:2013-02-10 12:36:14
【问题描述】:

我想知道如何确定控件何时对用户可见,何时不可见?

假设我正在编写一个扩展 TextBox 的自定义控件,我想知道何时可见,以便在可见更改触发的处理程序内执行一些自定义逻辑。

怎么做?如何确定控件是否对用户可见?例如,扩展TextBox 的自定义控件可以在Button 内部,Button 可以接收Visibility.Collapsed,因此它的所有内部嵌套控件都是不可见的,这就是我想知道的。无论 Visibility 属性设置什么值,如何判断是否可见?

【问题讨论】:

    标签: wpf


    【解决方案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中使用这个方法到底是什么意思?
    猜你喜欢
    • 2010-12-03
    • 2011-08-24
    • 2011-09-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多