背景提要
我在封装样式时发现的问题,然而没有找到一个完整的例子来解决问题,或者说少。
问题出现
当给一个控件添加动画效果——当鼠标放置在控件上的时候,它的宽度会产生变化

我们可以使用EventTrigger,其中Width会在0.1秒内变化到110
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:0.100"
Storyboard.TargetProperty="Width" To="110" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="MouseLeave">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:0.100"
Storyboard.TargetProperty="Width" To="100" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
但问题在于,我们在封装样式后,To的值是不可以被任意设置的。
于是将To绑定到一个变量中。
<DoubleAnimation Duration="0:0:0.100" Storyboard.TargetProperty="Width"
To="{TemplateBinding Width_increase}" />
就出现了开头的问题:

文章讲述了如何在封装样式时处理动态宽度动画,解决To值绑定导致的渲染问题,通过使用MultiplyConverter和Tag机制实现动画效果的控制。
最低0.47元/天 解锁文章
845

被折叠的 条评论
为什么被折叠?



