728x90
반응형
728x170
■ PointAnimation 클래스를 사용해 공을 일정 구간에서 반복적으로 움직이는 방법을 보여준다.
▶ MainWindow.xaml
<Window x:Class="TestProject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="800"
Height="600"
Title="TestProject"
FontFamily="나눔고딕코딩"
FontSize="16">
</Window>
▶ MainWindow.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media.Animation;
using System.Windows.Media;
using System.Windows.Shapes;
namespace TestProject
{
/// <summary>
/// 메인 윈도우
/// </summary>
public partial class MainWindow : Window
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainWindow()
/// <summary>
/// 생성자
/// </summary>
public MainWindow()
{
InitializeComponent();
NameScope.SetNameScope(this, new NameScope());
EllipseGeometry ellipseGeometry = new EllipseGeometry();
ellipseGeometry.Center = new Point(200, 200);
ellipseGeometry.RadiusX = 50;
ellipseGeometry.RadiusY = 50;
RegisterName("ellipseGeometry", ellipseGeometry);
Path path = new Path();
path.StrokeThickness = 5;
path.Stroke = Brushes.Black;
path.Fill = Brushes.Blue;
path.Data = ellipseGeometry;
Canvas canvas = new Canvas();
canvas.Width = 400;
canvas.Height = 400;
canvas.Children.Add(path);
Content = canvas;
PointAnimation pointAnimation = new PointAnimation();
pointAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(1000));
pointAnimation.From = new Point(200, 200);
pointAnimation.To = new Point(50, 50);
pointAnimation.AutoReverse = true;
pointAnimation.RepeatBehavior = RepeatBehavior.Forever;
Storyboard.SetTargetName(pointAnimation, "ellipseGeometry");
Storyboard.SetTargetProperty(pointAnimation, new PropertyPath(EllipseGeometry.CenterProperty));
Storyboard storyboard = new Storyboard();
storyboard.Children.Add(pointAnimation);
path.Loaded += delegate(object sender, RoutedEventArgs e)
{
storyboard.Begin(path);
};
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] Image 엘리먼트 : Clip 속성 사용하기 (0) | 2023.04.02 |
---|---|
[C#/WPF] Polygon 엘리먼트 : 별(star) 그리기 (0) | 2023.04.02 |
[C#/WPF] PathGeometry 엘리먼트 : Figures 속성을 사용해 복수 하위 패스 만들기 (0) | 2023.04.01 |
[C#/WPF] GeometryGroup 엘리먼트 : FillRule 속성을 EvenOdd로 설정해 동심원 만들기 (0) | 2023.04.01 |
[C#/WPF] SizeAnimation 클래스 : ArcSegment 객체의 크기를 변경하는 애니메이션 만들기 (0) | 2023.04.01 |
[C#/WPF] PointAnimation 엘리먼트 : 공을 일정 구간에서 반복적으로 움직이기 (0) | 2023.04.01 |
[C#/WPF] Path 엘리먼트 : Data 속성에서 패스 미니 언어 사용하기 (0) | 2023.03.30 |
[C#/WPF] CombinedGeometry 엘리먼트 : GeometryCombineMode 속성 사용하기 (0) | 2023.03.28 |
[C#/WPF] ImageDrawing 엘리먼트 : Rect/ImageSource 속성을 사용해 이미지 드로잉 그리기 (0) | 2023.03.26 |
[C#/WPF] DrawingGroup 엘리먼트 : BitmapEffect/OpacityMask 속성을 사용해 드로잉 그리기 (0) | 2023.03.26 |
댓글을 달아 주세요