728x90
반응형
728x170
■ SizeAnimation 클래스를 사용해 ArcSegment 객체의 크기를 변경하는 애니메이션을 만드는 방법을 보여준다.
▶ 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());
ArcSegment arcSegment = new ArcSegment();
arcSegment.Size = new Size(90, 80);
arcSegment.Point = new Point(500, 200);
arcSegment.SweepDirection = SweepDirection.Clockwise;
RegisterName("arcSegment", arcSegment);
PathSegmentCollection pathSegmentCollection = new PathSegmentCollection();
pathSegmentCollection.Add(arcSegment);
PathFigure pathFigure = new PathFigure();
pathFigure.StartPoint = new Point(100, 200);
pathFigure.Segments = pathSegmentCollection;
PathFigureCollection pathFigureCollection = new PathFigureCollection();
pathFigureCollection.Add(pathFigure);
PathGeometry pathGeometry = new PathGeometry();
pathGeometry.Figures = pathFigureCollection;
Path path = new Path();
path.StrokeThickness = 1;
path.Stroke = Brushes.Black;
path.Data = pathGeometry;
SizeAnimation sizeAnimation = new SizeAnimation();
sizeAnimation.Duration = TimeSpan.FromSeconds(2);
sizeAnimation.From = new Size(90, 80);
sizeAnimation.To = new Size(200, 200);
sizeAnimation.RepeatBehavior = RepeatBehavior.Forever;
sizeAnimation.AutoReverse = true;
Storyboard.SetTargetName(sizeAnimation, "arcSegment");
Storyboard.SetTargetProperty(sizeAnimation, new PropertyPath(ArcSegment.SizeProperty));
Storyboard storyboard = new Storyboard();
storyboard.Children.Add(sizeAnimation);
path.Loaded += delegate(object sender, RoutedEventArgs e)
{
storyboard.Begin(this);
};
Canvas canvas = new Canvas();
canvas.Width = 400;
canvas.Height = 400;
canvas.Children.Add(path);
Content = canvas;
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] BmpBitmapEncoder 클래스 : BMP 파일 생성하기 (0) | 2023.04.03 |
---|---|
[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] PointAnimation 클래스 : 공을 일정 구간에서 반복적으로 움직이기 (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 |
댓글을 달아 주세요