2013-02-25 119 views
5

我想知道如何弄清控件何時粘貼到用戶,何時不粘貼?如何判斷控件對用戶是否可見?

讓我說我正在寫一個自定義控件,它擴展了一個TextBox,我想知道什麼時候可見在可見變化觸發的處理程序內部執行一些自定義邏輯。

如何做?如何判斷控件對用戶是否可見?例如,擴展TextBox的自定義控件可能在Button之內,而Button可能會收到Visibility.Collapsed,所以它的所有內部嵌套控件都是隱藏的,這就是我想知道的。無論Visibility屬性設置什麼值,如何確定是否可見?

回答

9

您應該使用UIElement.IsVisibleChanged事件。當IsVisible的值更改爲只讀依賴項屬性並指示UI上的元素可見性時,會發生此錯誤。
UIElement.LayoutUpdated - 可用於重新計算控件可見性的事件。

UPDATE。 似乎是確切的重複:
In WPF, how can I determine whether a control is visible to the user?

+0

我編輯了我的問題。我不是在談論可見性屬性。我在談論一般的知名度。順便說一句,你的鏈接IsVisibleChanged不起作用 – 2013-02-25 11:25:10

+0

@hedgehog好的。現在我明白你的意思了。更新。 – 2013-02-25 11:39:16

+0

這只是一個方法,我必須顯式調用以確定是否可見。如果可見或不可見,我希望得到WPF的通知。 – 2013-02-25 11:43:41

相關問題