2012-07-06 46 views
2

在GridView(Metro風格的XAML應用程序)中,我希望我的一個磁貼具有VCR樣式的「暫停」圖標。但是,當用戶懸停在按鈕上(用鼠標)或按下按鈕時,我希望圖標變成「播放」。 (我想給出微妙的線索來加強它現在暫停的想法,但按下按鈕將開始播放。)在懸停時更改磁貼的外觀或按

如何檢測鼠標是否在平鋪上,以及平鋪是否被按下,所以我可以改變我的瓷磚的外觀?

理想情況下,我想鉤入瓷磚的VisualStateManager。但我仍然是VisualStateManager的新手,當我編輯我的ItemTemplate時,我沒有看到任何可用的視覺狀態。 (Blend的「States」停靠窗口是空的。)

如果我製作ItemContainerTemplate的副本並編輯它,那麼我可以獲得該圖塊的視覺狀態。但似乎令人難以置信的矯枉過正。它增加了大量的XAML(因爲它意味着複製任何地方任何瓷磚支持的功能的每一個最後一點)。這意味着,如果微軟在Windows 8發佈之前做出任何更改,我將不得不重新做出我的更改。

在「指針翻轉」和「按下」狀態下,是否有更輕量的方式來改變瓷磚的外觀?

回答

0

沒有。可悲的是,如果你想改變控制行爲的方式,你需要重寫模板。我已經完成了您所描述的改變模板外觀和感覺的內容。這是一個痛苦的脖子。

我在某處讀到「Xaml令人難以置信的難度,難以置信的難度以及令人難以置信的易用性」。這幾乎總結了我的經驗。

對不起,我無法提供更好的消息。