728x90
반응형
728x170
■ DrawingBrush 엘리먼트를 사용해 배경 애니메이션을 만드는 방법을 보여준다.
▶ MainWindow.xaml
<Window Name="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.Triggers>
<EventTrigger RoutedEvent="Page.Loaded">
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetName="grid"
Storyboard.TargetProperty="(Grid.Background).(DrawingBrush.Drawing).(DrawingGroup.Children)[0].(GeometryDrawing.Brush).(SolidColorBrush.Color)"
Duration="00:00:50"
From="LightGray"
To="DarkGray"
RepeatBehavior="Forever"
AutoReverse="True" />
<DoubleAnimation
Storyboard.TargetName="grid"
Storyboard.TargetProperty="(Grid.Background).(DrawingBrush.Transform).(RotateTransform.Angle)"
Duration="00:05:00"
From="0"
To="360"
RepeatBehavior="Forever"
AutoReverse="True" />
<DoubleAnimation
Storyboard.TargetName="grid"
Storyboard.TargetProperty="(Grid.Background).(DrawingBrush.Drawing).(DrawingGroup.Children)[1].(GeometryDrawing.Geometry).(EllipseGeometry.RadiusX)"
Duration="00:00:05"
From="0.1"
To="0.25"
RepeatBehavior="Forever"
AutoReverse="True" />
<PointAnimation
Storyboard.TargetName="grid"
Storyboard.TargetProperty="(Grid.Background).(DrawingBrush.Drawing).(DrawingGroup.Children)[2].(GeometryDrawing.Geometry).(EllipseGeometry.Center)"
Duration="00:00:10"
From="-0.25 -0.25"
To="1.25 1.25"
RepeatBehavior="Forever"
AutoReverse="True" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Window.Triggers>
<Grid Name="grid">
<Grid.Background>
<DrawingBrush
ViewportUnits="Absolute"
Viewport="0 0 100 100"
TileMode="Tile">
<DrawingBrush.Drawing>
<DrawingGroup>
<DrawingGroup.Children>
<GeometryDrawing>
<GeometryDrawing.Geometry>
<RectangleGeometry Rect="0 0 1 1" />
</GeometryDrawing.Geometry>
<GeometryDrawing.Brush>
<SolidColorBrush Color="LightGray" />
</GeometryDrawing.Brush>
<GeometryDrawing.Pen>
<Pen
Thickness="0.01"
Brush="DarkGray" />
</GeometryDrawing.Pen>
</GeometryDrawing>
<GeometryDrawing Brush="#99cccccc">
<GeometryDrawing.Geometry>
<EllipseGeometry
Center="0.75 0.5"
RadiusX="0.25"
RadiusY="0.25" />
</GeometryDrawing.Geometry>
</GeometryDrawing>
<GeometryDrawing Brush="#66cccccc">
<GeometryDrawing.Geometry>
<EllipseGeometry
Center="0.25 0.25"
RadiusX="0.1"
RadiusY="0.1" />
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingGroup.Children>
</DrawingGroup>
</DrawingBrush.Drawing>
<DrawingBrush.Transform>
<RotateTransform
CenterX="0.5"
CenterY="0.5" />
</DrawingBrush.Transform>
</DrawingBrush>
</Grid.Background>
<Ellipse
Width="300"
Height="300"
Fill="Gold"
StrokeThickness="3"
Stroke="Black" />
</Grid>
</Window>
728x90
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] ImageDrawing 엘리먼트 사용하기 (0) | 2023.03.18 |
---|---|
[C#/WPF] DrawingBrush 엘리먼트 : Transform/RelativeTransform 속성 사용하기 (0) | 2023.03.18 |
[C#/WPF] DrawingBrush 엘리먼트 사용하기 (0) | 2023.03.17 |
[C#/WPF] VisualBrush 엘리먼트 : 반사 효과 만들기 (0) | 2023.03.17 |
[C#/WPF] DrawingBrush 엘리먼트 사용하기 (0) | 2023.03.17 |
[C#/WPF] Image 엘리먼트 : OpacityMask 속성에서 LinearGradientBrush 객체 사용하기 (0) | 2023.03.16 |
[C#/WPF] Image 엘리먼트 : OpacityMask 속성에서 ImageBrush 객체 사용하기 (0) | 2023.03.16 |
[C#/WPF] Image 엘리먼트 : OpacityMask 속성에서 DrawingBrush 객체 사용하기 (0) | 2023.03.16 |
[C#/WPF] Button 엘리먼트 : OpacityMask 속성에서 DrawingBrush 객체 사용하기 (0) | 2023.03.16 |
[C#/WPF] Brush 클래스 : 브러시 사용하기 (0) | 2023.03.16 |
댓글을 달아 주세요