2011-07-09 79 views
5

我想在WPF Canvas控件上更改可見性時設置要運行的事件。WPF canvas VisibilityChanged事件

canvas1.VisibileChanged += new EventHandler(canvas1_VisibleChanged); 

我已經嘗試了上述,但它不工作任何人都知道如何做到這一點?

乾杯

+1

它是'VisibleChanged',而不是'VisibileChanged'。這是你的代碼或問題中的錯字? – keyboardP

+0

如果是在代碼中,我想編譯器會注意到(假設OP已經嘗試編譯至少一次,雖然說「這不行」意味着它已經被編譯*和*運行)。 – dlev

+0

這是真的,但是我看過「這不起作用」的問題,指的是編譯失敗。 – keyboardP

回答

19

UIElement.IsVisibleChanged

您正在尋找的IsVisibleChanged事件,它適用於所有的UI元素。


更多信息:IsVisible是隻讀的依賴項屬性。它是一個計算值,而可見性依賴屬性影響它。這是你應該用來檢測你的UIElement是否可見。現在,如果你真的想真的想檢查可見性DP因爲什麼原因而改變,有辦法做到這一點:http://agsmith.wordpress.com/2008/04/07/propertydescriptor-addvaluechanged-alternative/

雖然,我仍然堅持只跟蹤IsVisibleChanged

2

正常WPF Canvas對象不具有.VisibleChanged事件,所以你不能一個事件處理程序分配給它。

+0

任何UIElement在可見性變化時都會觸發事件。 –