728x90
반응형
728x170
■ RadialGradientBrush 엘리먼트의 애니메이션을 설정하는 방법을 보여준다.
▶ 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"
xmlns:options="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options"
Width="800"
Height="600"
Title="TestProject"
FontFamily="나눔고딕코딩"
FontSize="16">
<Window.Resources>
<DrawingBrush x:Key="CheckeredBackgroundDrawingBrushKey"
ViewportUnits="Absolute"
Viewport="0 0 10 10"
TileMode="Tile"
options:Freeze="True">
<DrawingBrush.Drawing>
<DrawingGroup>
<GeometryDrawing Brush="White">
<GeometryDrawing.Geometry>
<RectangleGeometry Rect="0 0 1 1" />
</GeometryDrawing.Geometry>
</GeometryDrawing>
<GeometryDrawing
Brush="#e2e2e2"
Geometry="M 0 0 L 0 0.5 0.5 0.5 0.5 1 1 1 1 0.5 0.5 0.5 0.5 0" />
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Background" Value="White" />
<Setter Property="Padding" Value="10" />
<Setter Property="BitmapEffect">
<Setter.Value>
<OuterGlowBitmapEffect GlowColor="White" />
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type Rectangle}">
<Setter Property="BitmapEffect">
<Setter.Value>
<DropShadowBitmapEffect />
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid
HorizontalAlignment="Center"
VerticalAlignment="Center"
Background="{StaticResource CheckeredBackgroundDrawingBrushKey}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0">Animated GradientStop Offset</TextBlock>
<Rectangle Grid.Row="1" Grid.Column="0"
Margin="10"
Width="200"
Height="100"
StrokeThickness="1"
Stroke="Black">
<Rectangle.Fill>
<RadialGradientBrush>
<GradientStop Offset="0.0" Color="MediumBlue" />
<GradientStop x:Name="gradientStop10" Offset="0.5" Color="Purple" />
<GradientStop Offset="1.0" Color="Red" />
</RadialGradientBrush>
</Rectangle.Fill>
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Rectangle.MouseLeftButtonDown">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="gradientStop10"
Storyboard.TargetProperty="Offset"
Duration="00:00:03"
From="0.0"
To="1.0"
FillBehavior="Stop" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
<TextBlock Grid.Row="2" Grid.Column="0">Animated GradientStop Color</TextBlock>
<Rectangle Grid.Row="3" Grid.Column="0"
Margin="10"
Width="200"
Height="100"
StrokeThickness="1"
Stroke="Black">
<Rectangle.Fill>
<RadialGradientBrush>
<GradientStop Offset="0.0" Color="MediumBlue" />
<GradientStop x:Name="gradientStop30" Offset="0.5" Color="Purple" />
<GradientStop Offset="1.0" Color="Red" />
</RadialGradientBrush>
</Rectangle.Fill>
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Rectangle.MouseLeftButtonDown">
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetName="gradientStop30"
Storyboard.TargetProperty="Color"
Duration="00:00:03"
From="Purple"
To="Yellow"
FillBehavior="Stop" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
<TextBlock Grid.Row="4" Grid.Column="0">Animated GradientStop Opacity</TextBlock>
<Rectangle Grid.Row="5" Grid.Column="0"
Margin="10"
Width="200"
Height="100"
StrokeThickness="1"
Stroke="Black">
<Rectangle.Fill>
<RadialGradientBrush>
<GradientStop Offset="0.0" Color="MediumBlue" />
<GradientStop x:Name="gradientStop50" Offset="0.5" Color="Purple" />
<GradientStop Offset="1.0" Color="Red" />
</RadialGradientBrush>
</Rectangle.Fill>
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Rectangle.MouseLeftButtonDown">
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetName="gradientStop50"
Storyboard.TargetProperty="Color"
Duration="00:00:03"
FillBehavior="Stop">
<ColorAnimation.By>
<Color ScA="-1" ScR="0" ScB="0" ScG="0" />
</ColorAnimation.By>
</ColorAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
<TextBlock Grid.Row="0" Grid.Column="1">Animated GradientOrigin</TextBlock>
<Ellipse Grid.Row="1" Grid.Column="1"
Margin="10"
Width="200"
Height="100"
StrokeThickness="1"
Stroke="Black">
<Ellipse.Fill>
<RadialGradientBrush x:Name="radialGradientBrush1"
GradientOrigin="0.75 0.25">
<GradientStop Offset="0.0" Color="#cbc8f1" />
<GradientStop Offset="0.5" Color="MediumBlue" />
<GradientStop Offset="1.0" Color="DarkBlue" />
</RadialGradientBrush>
</Ellipse.Fill>
<Ellipse.Triggers>
<EventTrigger RoutedEvent="Ellipse.MouseLeftButtonDown">
<BeginStoryboard>
<Storyboard>
<PointAnimation
Storyboard.TargetName="radialGradientBrush1"
Storyboard.TargetProperty="GradientOrigin"
Duration="00:00:03"
From="1 0"
To="0 1"
FillBehavior="Stop" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Ellipse.Triggers>
</Ellipse>
<TextBlock Grid.Row="2" Grid.Column="1">Animated Center</TextBlock>
<Ellipse Grid.Row="3" Grid.Column="1"
Margin="10"
Width="200"
Height="100"
StrokeThickness="1"
Stroke="Black">
<Ellipse.Fill>
<RadialGradientBrush x:Name="radialGradientBrush2"
GradientOrigin="0.75 0.25">
<GradientStop Offset="0.0" Color="#cbc8f1" />
<GradientStop Offset="0.5" Color="MediumBlue" />
<GradientStop Offset="1.0" Color="DarkBlue" />
</RadialGradientBrush>
</Ellipse.Fill>
<Ellipse.Triggers>
<EventTrigger RoutedEvent="Ellipse.MouseLeftButtonDown">
<BeginStoryboard>
<Storyboard>
<PointAnimation
Storyboard.TargetName="radialGradientBrush2"
Storyboard.TargetProperty="Center"
Duration="00:00:03"
From="0 0"
To="1 1"
FillBehavior="Stop" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Ellipse.Triggers>
</Ellipse>
<TextBlock Grid.Row="4" Grid.Column="1">Animated Radius</TextBlock>
<Ellipse Grid.Row="5" Grid.Column="1"
Margin="10"
Width="200"
Height="100"
StrokeThickness="1"
Stroke="Black">
<Ellipse.Fill>
<RadialGradientBrush x:Name="radialGradientBrush3"
GradientOrigin="0.75 0.25">
<GradientStop Offset="0.0" Color="#cbc8f1" />
<GradientStop Offset="0.5" Color="MediumBlue" />
<GradientStop Offset="1.0" Color="DarkBlue" />
</RadialGradientBrush>
</Ellipse.Fill>
<Ellipse.Triggers>
<EventTrigger RoutedEvent="Ellipse.MouseLeftButtonDown">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="radialGradientBrush3"
Storyboard.TargetProperty="RadiusX"
Duration="00:00:03"
From="0"
To="1"
FillBehavior="Stop" />
<DoubleAnimation
Storyboard.TargetName="radialGradientBrush3"
Storyboard.TargetProperty="RadiusY"
Duration="00:00:03"
From="0"
To="1"
FillBehavior="Stop" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Ellipse.Triggers>
</Ellipse>
</Grid>
</Window>
728x90
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[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 |
[C#/WPF] GradientBrush 클래스 : SpreadMethod 속성 사용하기 (0) | 2023.03.16 |
[C#/WPF] Shape 클래스 : StrokeDashArray/StrokeDashOffset 속성 사용하기 (0) | 2023.03.16 |
[C#/WPF] GradientBrush 클래스 : GradientStops 속성 사용하기 (0) | 2023.03.14 |
[C#/WPF] Brush 클래스 : Opacity 속성을 사용해 브러시 투명도 설정하기 (0) | 2023.03.13 |
[C#/WPF] DrawingBrush 엘리먼트 사용하기 (0) | 2023.03.09 |
댓글을 달아 주세요