1

在我的项目中,当程序启动时多边形在设定的路径上移动我应该改变什么来停止多边形移动,当鼠标光标在它上面时(当鼠标光标离开多边形时,多边形必须继续移动)

<Window x:Class="aqua3.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:aqua3"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525">
<Window.Resources>
    <PathGeometry x:Key="pathg">
        <PathFigure IsClosed="True">
            <PolyLineSegment Points="0,0 200,0 200,80 0,80" />
        </PathFigure>
    </PathGeometry>
</Window.Resources>
<Grid Background="LightBlue">
    <Canvas Margin="10" Background="LightBlue">
        <Path Stroke="Red" Data="{StaticResource pathg}" Canvas.Top="10" Canvas.Left="10" />
        <Polygon Name="polygon1" Stroke="Yellow" Fill="Yellow"  Points="100,150 120,140 120,120 165,150 120,180 120,160 ">
            <Polygon.Triggers>
                <EventTrigger RoutedEvent="Window.Loaded">
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimationUsingPath Storyboard.TargetProperty="(Canvas.Top)"
                                   Duration="0:0:15" RepeatBehavior="Forever"
                                   PathGeometry="{StaticResource pathg}" Source="Y" >
                            </DoubleAnimationUsingPath>
                            <DoubleAnimationUsingPath Storyboard.TargetProperty="(Canvas.Left)"
                                   Duration="0:0:15" RepeatBehavior="Forever"
                                   PathGeometry="{StaticResource pathg}" Source="X" >
                            </DoubleAnimationUsingPath>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Polygon.Triggers>
        </Polygon>
    </Canvas>
</Grid>

4

1 回答 1

1
  1. 给你的名字命名BeginStoryboard

    <BeginStoryboard x:Name="Move">
    
  2. 要暂停,请添加此

    <EventTrigger RoutedEvent="MouseEnter">
         <PauseStoryboard BeginStoryboardName="Move"/>
    </EventTrigger>
    
  3. 要恢复,请添加此

    <EventTrigger RoutedEvent="MouseLeave">
         <ResumeStoryboard BeginStoryboardName="Move"/>
    </EventTrigger>
    
于 2017-04-02T11:32:44.737 回答