【问题标题】:Custom toggle button and states - how to give same effect to both MouseOver and Checked?自定义切换按钮和状态 - 如何为 MouseOver 和 Checked 赋予相同的效果?
【发布时间】:2010-08-19 21:31:45
【问题描述】:

我通过或多或少使用此处找到的过程基于图像制作了一个自定义按钮:

http://www.kirupa.com/blend_silverlight/creating_custom_button_pg1.htm

我添加了一个将图像放大 1.5 倍的 MouseOver 状态,因此当您将鼠标悬停在图像上时,它会稍微变大,然后在您将鼠标移开时缩小回正常大小。一切都很好,这正是我想要的。

现在我想做一个切换按钮,做同样的事情,但是当按下切换按钮时,图像大小应该保持在 1.5x 以表明它已被选中。我尝试将相同的放大效果添加到 Checked 状态并收到有关在多个状态组中更改对象属性的警告。

这是有道理的...如果您按下切换按钮,则在 CheckStates 中将状态设置为 Checked,但是当您将鼠标移开时,它会将图像缩放回 CommonStates 中的 Normal。因此,图像无法停留在 1.5 倍。

那么,我究竟如何才能完成这项工作?如果选中按钮,是否有任何方法可以“杀死”更改鼠标移出状态?

【问题讨论】:

    标签: silverlight-4.0 expression-blend


    【解决方案1】:

    理论上,这 2 个效果(悬停和选中状态)仍然应该是分开的。如果“选中时放大”处于活动状态,您仍然希望控件在悬停时放大更多,因此效果会相加。

    为避免您遇到的冲突,您需要将情节提要更改应用到控件中的 2 个不同元素。只要确保两者对控件具有相同的整体影响即可。这可能意味着在现有元素之上引入一个额外元素(例如,复选框网格之上的网格)。

    希望这会有所帮助。

    【讨论】:

    • 谢谢,根据您的建议,我将图像放在画布中,然后选中画布展开并在鼠标悬停时展开图像。现在,检查切换按钮时图像保持更大;唯一的问题是,如果您将鼠标悬停在已选中的按钮上,图像会展开两次,但我可以忍受。
    猜你喜欢
    • 2010-12-04
    • 2011-07-09
    • 2018-01-01
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    相关资源
    最近更新 更多