2012-04-24 14 views
0

我的WPF应用程序内部存在一个奇怪的交互。我设计了所有的按钮,使它们具有带白色字母的深蓝色背景。他们看起来很棒,直到你点击它们并且他们获得焦点。之后,字面上的眨眼,背景颜色逐渐淡化为乳白色的蓝白色,以适应我的颜色选择。这是分散给用户的,必须去。在没有ButtonChrome的WPF按钮按动画?

我们假设ButtonChrome负责这个奇怪的动画。所以我想为我的按钮更改模板,以便在按钮具有焦点时使用带背景颜色的矩形和围绕文本的虚线。但是我仍然希望让按钮看起来像被点击时被压入应用程序中。

如何在没有ButtonChrome的情况下高效地执行这一部分动画?

托尼

回答

0

使用VisualStateManager,包括为重点的和/或IsPressed状态

+0

是的,谢谢,我欣赏指针。但我想我已经知道了。我正在寻找更多的“用这个(这些)颜色绘制这个元素,然后绘制这个元素。”更多实际绘制内容的细节,而不是使用VisualStateManager的一般性。 – 2012-04-25 12:21:19

0

事实证明,如果你希望你的按钮正确的动画效果,你需要一个ButtonChrome的动画。事实证明,解决方案是创建您自己的ButtonChrome类并在您的样式中使用它。请注意,我不想摆脱所有动画,只是当控件是默认按钮或具有焦点时发生的动画。

我能找到Aero主题ButtonChrome的另一篇文章StackOverflow处理类似问题的来源。目前我没有这个URL。当我找到它时,我会用这个URL更新这个答案。

无论如何,我删除了违规的动画,现在我的按钮没有不必要的效果。