C#如何移动某个矩形(+ x,+ y)

时间:2013-12-22 17:09:16

标签: c# object animation

我正在研究一个项目,我希望动画一个矩形,每次我(例如)按一个按钮时移动一定数量的像素。 例如:我的矩形位于(x = 50,y = 60)的位置。我希望只需点击一下按钮,每按一次它就会移动10次。所以只需点击一下就可以进入(50,70),第二次进入(50,80),依此类推...

我正在使用visual studio并融入Visual C#windows商店应用程序。 提前致谢! :)

1 个答案:

答案 0 :(得分:2)

您需要将矩形放在Canvas对象中:

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
    <StackPanel>
        <Border BorderThickness="1" BorderBrush="Gray">
            <Canvas Name="PointCanvas" Width="500" Height="294" Margin="9,0,6,0">
                <Rectangle x:Name="myRect" Fill="#FFF5F4F5" Height="39" Canvas.Left="170" Stroke="Black" Canvas.Top="89" Width="89"/>
            </Canvas>
        </Border>
    <Button Name="Move" Click="Button_Click">Move</Button>
    </StackPanel>
</Window>

在窗口中添加一个按钮并添加Click事件:

    private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
    {
        var myRect = (Rectangle)this.FindName("myRect");
        double x = Canvas.GetLeft(myRect);
        double y = Canvas.GetTop(myRect);

        Canvas.SetLeft(myRect,x+10);
        Canvas.SetTop(myRect,y);
    }

然后我们可以在画布中获取矩形的x,y,并且每次按下按钮都会移动它一定量。