在悬停或按下时更改磁贴的外观

时间:2012-07-06 03:18:23

标签: gridview winrt-xaml visualstatemanager

在GridView(Metro风格的XAML应用程序)中,我希望我的一个图块上有一个VCR样式的“暂停”图标。但是当用户将鼠标悬停在按钮上(使用鼠标)或按下按钮时,我希望图标更改为“播放”。 (我想给出一些微妙的暗示,以强化它现在暂停的想法,但按下按钮将开始播放。)

如何检测鼠标是否在瓷砖上方,以及是否按下了瓷砖,这样我可以更改瓷砖的外观?

理想情况下,我想挂钩瓷砖的VisualStateManager。但我仍然是VisualStateManager的新手,当我编辑我的ItemTemplate时,我没有看到任何可用的视觉状态。 (Blend的“States”停靠窗口是空的。)

如果我制作ItemContainerTemplate的副本并对其进行编辑,那么我可以获得该块的视觉状态。但这似乎令人难以置信的矫枉过正。它增加了大量的XAML(因为它意味着复制任何地方任何磁贴都支持的最后一点功能)。这意味着如果微软在Windows 8发布之前做出任何更改,我将不得不重新进行更改。

在“指针悬停”和“按下”状态下,是否有更轻量级的方式来改变我的瓷砖外观?

1 个答案:

答案 0 :(得分:0)

不。遗憾的是,如果您想要更改控件的行为方式,则需要覆盖模板。我完全按照你所描述的方式改变了模板的外观和感觉。这是一个痛苦的脖子。

我在某处读过“Xaml令人难以置信的轻松难以置信的难度和难以置信的难度”。这几乎总结了我的经验。

抱歉,我无法提供更好的消息。