2010-01-14 48 views
13

如何以編程方式獲取WPF FrameworkElement的當前可視狀態?而狀態我的意思是像「正常」,「MouseOver」,「禁用」等國家如何以編程方式獲取WPF FrameworkElement的當前可視狀態?

編輯: 基本上,我改變了一個按鈕的視覺狀態與VisualStateManager.GoToState(e, "MouseOver", true);,我想知道什麼狀態在我完成後將它改回。

回答

2

我想你必須知道/記住你自己的按鈕狀態。 VSM只是通過GoToState方法顯示按鈕的狀態。

編輯:我剛剛發現了一篇文章,介紹如何創建一個可以記住控制狀態的custom VSM

+2

您的鏈接已被刪除。 – JohnFx 2013-01-04 21:39:29

0

我認爲你應該使用GoToElementState方法而不是GoToState方法。

VisualStateManager.GoToElementState(LayoutRoot, "Add", true); 
+0

奇怪,我甚至沒有看到這種方法。當然,我使用.NET 3.5的WPF工具包中的VisualStateManager,因此它可能與.NET 4.0或Silverlight中內置的不同。 – jpierson 2013-02-18 02:47:32

0

我覺得你在這裏錯過了WPF的觀點,它不是模型的觀點。你不應該在視圖中存儲狀態。將狀態存儲在您的模型中並使用視圖來表示它。在此基礎上,您不需要閱讀視圖的狀態,您已經知道它。

我知道這可能看起來像很多工作,但它會在以後付錢給你。

相關問題