Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以使RenderTransform动画不修改鼠标的命中区域?_C#_Wpf_Animation_Storyboard_Expression Blend - Fatal编程技术网

C# 是否可以使RenderTransform动画不修改鼠标的命中区域?

C# 是否可以使RenderTransform动画不修改鼠标的命中区域?,c#,wpf,animation,storyboard,expression-blend,C#,Wpf,Animation,Storyboard,Expression Blend,我的按钮模板上有一个动画,当IsMouseOver为true时,该动画会旋转按钮。 动画会旋转按钮,因此如果用户没有将光标放在旋转的定位点附近,按钮可能会“跑开” 我的目标是,如果鼠标位于其原始区域内,按钮仍将保持悬停状态(因此,即使按钮旋转远离光标,它也将保持悬停状态,并接收鼠标单击,即使单击不是直接在其上) 我原以为使用RenderTransform而不是LayoutTransform可以解决我的问题,但不幸的是它仍然存在 我该怎么做? 谢谢大家! 这是我的故事板(我用blend创建的,所

我的按钮模板上有一个动画,当
IsMouseOver
为true时,该动画会旋转按钮。
动画会旋转按钮,因此如果用户没有将光标放在旋转的定位点附近,按钮可能会“跑开”

我的目标是,如果鼠标位于其原始区域内,按钮仍将保持悬停状态(因此,即使按钮旋转远离光标,它也将保持悬停状态,并接收鼠标单击,即使单击不是直接在其上)

我原以为使用
RenderTransform
而不是
LayoutTransform
可以解决我的问题,但不幸的是它仍然存在

我该怎么做?
谢谢大家!


这是我的故事板(我用blend创建的,所以请原谅它有点凌乱):


在按钮的模板中,相互添加两个项目(使用
网格
):

  • 下面的透明边框,占据整个矩形区域,不应用变换

  • 上面的实际按钮内容,已应用转换


我无法提供经过测试的示例代码,因为您没有包含自包含的示例。

中的问题解释得很好,但添加一些代码会使其更容易理解。@MayurDhingra我已经包含了我的故事板,如果有其他帮助,请告诉我。
<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>