我的按钮模板上有一个动画,当IsMouseOver
为真时旋转按钮
动画旋转按钮,因此如果用户没有将光标放在旋转的锚点附近,按钮就会“逃跑”。
我的目标是,如果鼠标位于原始区域内,按钮仍会保持悬停(因此,即使按钮旋转离开光标,它也会保持悬停状态,即使点击也会受到鼠标点击不是直接在它上面。)
我认为使用RenderTransform
代替LayoutTransform
可以解决我的问题,但不幸的是它仍然会发生。
我该怎么做? 谢谢!
<小时/> 这是我的故事板(我用混合创建的,所以请原谅它是否混乱):
<Storyboard x:Key="HoverAnimation">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" Storyboard.TargetName="border">
<EasingDoubleKeyFrame KeyTime="0:0:1.6" Value="-10.8">
<EasingDoubleKeyFrame.EasingFunction>
<BounceEase EasingMode="EaseOut"/>
</EasingDoubleKeyFrame.EasingFunction>
</EasingDoubleKeyFrame>
</DoubleAnimationUsingKeyFrames>
<PointAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransformOrigin)" Storyboard.TargetName="border">
<EasingPointKeyFrame KeyTime="0:0:1.6" Value="0.919,0.3">
<EasingPointKeyFrame.EasingFunction>
<BounceEase EasingMode="EaseOut"/>
</EasingPointKeyFrame.EasingFunction>
</EasingPointKeyFrame>
</PointAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[1].(SkewTransform.AngleX)" Storyboard.TargetName="border">
<EasingDoubleKeyFrame KeyTime="0:0:1.6" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
答案 0 :(得分:0)
在按钮的模板中,相互添加两个项目(使用Grid
):
下方的透明边框,占据整个矩形区域,未应用转换。
上面的实际按钮内容,应用了哪些转换。
我无法提供经过测试的示例代码,因为您没有包含自包含的示例。