【问题标题】:VisualStateManager: How to make the 'current' color lighter in MouseOver?VisualStateManager:如何使 MouseOver 中的“当前”颜色变亮?
【发布时间】:2011-04-29 16:19:26
【问题描述】:

1) 假设 DataGridColumnHeader 控件默认为绿色。

2) 如果我点击它,它将激活排序为“升序排序”,此时它应该变为橙色。再次单击它会将其更改为“降序排序”,它仍应保持为橙色。

以上两种情况用 VSM 很容易做到。但是,如果没有 Multi-trigger(我们在 Silverlight 中没有),以下两种情况在我看来是不可能的

1b) 每当我将鼠标悬停在 未排序 控件上时,它应该变为浅绿色。 我悬停在远处,它应该回到绿色底色。

2b) 每当我将鼠标悬停在 sorted 控件上时,它应该变成浅橙色。 我悬停,它应该回到橙色基地。

我应该如何确定 MouseOver 状态,在哪种模式下排序 状态是,为了选择光 相应的橙色或浅绿色? 或者是否可以 使当前颜色变亮,无需 知道它实际上是什么颜色吗?

【问题讨论】:

    标签: silverlight silverlight-4.0 wpfdatagrid visualstatemanager


    【解决方案1】:

    最简单的方法可能是在鼠标悬停时降低不透明度,从而有效地使绿色和橙色都变亮。

    或者,您可以为排序状态创建一个可视状态组,使用数据触发器对其进行设置,并相应地更改鼠标悬停元素的颜色。

    【讨论】:

    • 谢谢,我会试试不透明的提示。关于您的替代解决方案,我应该如何在 Silverlight 中使用数据触发器? :) 我们没有,忘记了吗?
    • 很高兴它有帮助 :) 您可以从 CodePlex 获得使用 Silverlight 的数据触发器(以及大量其他有用的位):expressionblend.codeplex.com/…
    • 谢谢,我去看看。
    猜你喜欢
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 2015-07-21
    • 2010-09-13
    相关资源
    最近更新 更多