【问题标题】:Begin a storyboard when hovering an Image悬停图像时开始故事板
【发布时间】:2017-11-27 08:32:17
【问题描述】:

我的表单上有一张简单的图片。我想做的是,当我将图像悬停时,它会启动一个故事板,该故事板基本上会自行进行 360 度循环。 这是故事板,它被称为 TurnLogo:

  <Storyboard x:Key="TurnLogo">
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" Storyboard.TargetName="image">
            <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="0"/>
            <EasingDoubleKeyFrame KeyTime="0:0:1" Value="360"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>

这是我的图片:

<Image x:Name="image" HorizontalAlignment="Left" Height="64" VerticalAlignment="Top" Width="64" Source="Images/Logo/Logomakr_3lb9fd.png" Margin="7,7,0,0" RenderTransformOrigin="0.5,0.5">
            <Image.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform/>
                    <RotateTransform/>
                    <TranslateTransform/>
                </TransformGroup>
            </Image.RenderTransform>
            <Image.Style>
                <Style>
                    <Style.Triggers>
                       <EventTrigger RoutedEvent="Control.MouseEnter">
                           <BeginStoryboard Storyboard="{StaticResource TurnLogo}"/>
                        </EventTrigger>
                    </Style.Triggers>
                </Style>
            </Image.Style>
        </Image>

当我将图像悬停时它失败了。为什么?

【问题讨论】:

    标签: wpf image triggers storyboard


    【解决方案1】:

    删除Storyboard.TargetName:

    <Storyboard x:Key="TurnLogo">
        <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Angle"
                         By="360" Duration="0:0:1"/>
    </Storyboard>
    

    并简化 RenderTransform:

    <Image ... RenderTransformOrigin="0.5,0.5">
        <Image.RenderTransform>
            <RotateTransform/>
        </Image.RenderTransform>
        <Image.Style>
            <Style TargetType="Image">
                <Style.Triggers>
                   <EventTrigger RoutedEvent="MouseEnter">
                       <BeginStoryboard Storyboard="{StaticResource TurnLogo}"/>
                    </EventTrigger>
                </Style.Triggers>
            </Style>
        </Image.Style>
    </Image>
    

    【讨论】:

      猜你喜欢
      • 2017-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      相关资源
      最近更新 更多