Created
May 31, 2015 17:07
-
-
Save IPRIT/0fded4e172e4565e71e9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <ResourceDictionary | |
| x:Class="MyStyle.WindowStyle" | |
| xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" | |
| xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" | |
| xmlns:CustomEase="clr-namespace:CustomEasingFunction" | |
| xmlns:PresentationOptions="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options"> | |
| <SolidColorBrush x:Key="TitleBarBackgroundBrush" Color="#99FFFFFF" /> | |
| <SolidColorBrush x:Key="WindowBorderBrush" Color="#FFF" /> | |
| <SolidColorBrush x:Key="WindowBorderBrushInactive" Color="#777" /> | |
| <SolidColorBrush x:Key="WindowStatusForeground" Color="#FFFFFF" /> | |
| <SolidColorBrush x:Key="WindowStatusForegroundInactive" Color="#FFFFFF" /> | |
| <Style x:Key="WindowStyleTitleBarButton" TargetType="{x:Type Button}"> | |
| <Setter Property="Focusable" Value="false" /> | |
| <Setter Property="Template"> | |
| <Setter.Value> | |
| <ControlTemplate TargetType="{x:Type Button}"> | |
| <Grid> | |
| <Border | |
| x:Name="PART_border" | |
| Background="Transparent" CornerRadius="5" | |
| /> | |
| <ContentPresenter /> | |
| </Grid> | |
| <ControlTemplate.Triggers> | |
| <Trigger Property="IsMouseOver" Value="True"> | |
| <Setter TargetName="PART_border" Property="Background" Value="#FFF" /> | |
| <Setter TargetName="PART_border" Property="Opacity" Value="0.5" /> | |
| </Trigger> | |
| <Trigger Property="IsPressed" Value="True"> | |
| <Setter TargetName="PART_border" Property="Background" Value="#77777777"/> | |
| <Setter TargetName="PART_border" Property="Opacity" Value="1" /> | |
| <Setter Property="Foreground" Value="#000"/> | |
| </Trigger> | |
| </ControlTemplate.Triggers> | |
| </ControlTemplate> | |
| </Setter.Value> | |
| </Setter> | |
| </Style> | |
| <Style x:Key="WindowStyle" TargetType="{x:Type Window}"> | |
| <Setter Property="WindowStyle" Value="None" /> | |
| <Setter Property="AllowsTransparency" Value="true" /> | |
| <Setter Property="Background" Value="White" /> | |
| <Setter Property="ResizeMode" Value="CanResizeWithGrip" /> | |
| <Setter Property="WindowChrome.WindowChrome"> | |
| <Setter.Value> | |
| <WindowChrome | |
| NonClientFrameEdges="None" | |
| GlassFrameThickness="0" | |
| ResizeBorderThickness="7" | |
| CaptionHeight="32" | |
| /> | |
| </Setter.Value> | |
| </Setter> | |
| <Setter Property="Template"> | |
| <Setter.Value> | |
| <ControlTemplate TargetType="{x:Type Window}"> | |
| <Border | |
| x:Name="PART_Container" | |
| Padding="7 7 7 5" | |
| CornerRadius="5"> | |
| <Grid | |
| TextOptions.TextRenderingMode="ClearType" | |
| TextOptions.TextFormattingMode="Display"> | |
| <Grid Background="#DDFFFFFF"> | |
| <Grid.Effect> | |
| <BlurEffect Radius="2"/> | |
| </Grid.Effect> | |
| </Grid> | |
| <Border | |
| x:Name="PART_Border" | |
| Width="Auto" | |
| Height="Auto" | |
| Background="Transparent" | |
| BorderBrush="{StaticResource WindowBorderBrush}" | |
| BorderThickness="1" | |
| Padding="0" CornerRadius="2"> | |
| <DockPanel | |
| HorizontalAlignment="Stretch" | |
| Background="Transparent" | |
| VerticalAlignment="Stretch" | |
| > | |
| <Border | |
| x:Name="TitleBar" | |
| DockPanel.Dock="Top" | |
| Background="{StaticResource TitleBarBackgroundBrush}" | |
| BorderThickness="0" | |
| > | |
| <Grid Height="32"> | |
| <Grid.ColumnDefinitions> | |
| <ColumnDefinition Width="36"/> | |
| <ColumnDefinition /> | |
| <ColumnDefinition Width="34"/> | |
| <ColumnDefinition Width="34"/> | |
| <ColumnDefinition Width="34"/> | |
| </Grid.ColumnDefinitions> | |
| <Ellipse x:Name="Earth3" Stroke="#FF2F5DDC" Width="10" Height="10" | |
| Margin="20,5,0,0"> | |
| <Ellipse.Fill> | |
| <RadialGradientBrush> | |
| <GradientStop Color="#FF2CC514"/> | |
| <GradientStop Color="#FF2886C0" Offset="0.896"/> | |
| </RadialGradientBrush> | |
| </Ellipse.Fill> | |
| <Ellipse.RenderTransform> | |
| <RotateTransform | |
| x:Name="earth2Transform" | |
| Angle="0" | |
| CenterX="-1" | |
| CenterY="0" /> | |
| </Ellipse.RenderTransform> | |
| <Ellipse.Triggers> | |
| <EventTrigger RoutedEvent="Ellipse.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimation | |
| Storyboard.TargetName="earth2Transform" | |
| Storyboard.TargetProperty="Angle" | |
| From="360.0" To="0.0" Duration="0:0:1" | |
| RepeatBehavior="Forever" /> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Ellipse.Triggers> | |
| </Ellipse> | |
| <Ellipse x:Name="Earth2" Stroke="#FF2F5DDC" Width="10" Height="10" | |
| Margin="20,5,0,0"> | |
| <Ellipse.Fill> | |
| <RadialGradientBrush> | |
| <GradientStop Color="#FF2CC514"/> | |
| <GradientStop Color="#FF2886C0" Offset="0.896"/> | |
| </RadialGradientBrush> | |
| </Ellipse.Fill> | |
| <Ellipse.RenderTransform> | |
| <RotateTransform | |
| x:Name="earthTransform" | |
| Angle="0" | |
| CenterX="-1" | |
| CenterY="0" /> | |
| </Ellipse.RenderTransform> | |
| <Ellipse.Triggers> | |
| <EventTrigger RoutedEvent="Ellipse.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimation | |
| Storyboard.TargetName="earthTransform" | |
| Storyboard.TargetProperty="Angle" | |
| From="0.0" To="360.0" Duration="0:0:1" | |
| RepeatBehavior="Forever" /> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Ellipse.Triggers> | |
| </Ellipse> | |
| <Ellipse x:Name="Earth4" Stroke="#FF2F5DDC" Width="10" Height="10" | |
| Margin="20,5,0,0"> | |
| <Ellipse.Fill> | |
| <RadialGradientBrush> | |
| <GradientStop Color="#FF2CC514"/> | |
| <GradientStop Color="#FF2886C0" Offset="0.896"/> | |
| </RadialGradientBrush> | |
| </Ellipse.Fill> | |
| <Ellipse.RenderTransform> | |
| <RotateTransform | |
| x:Name="earth3Transform" | |
| Angle="0" | |
| CenterX="-1" | |
| CenterY="0" /> | |
| </Ellipse.RenderTransform> | |
| <Ellipse.Triggers> | |
| <EventTrigger RoutedEvent="Ellipse.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimation | |
| Storyboard.TargetName="earth3Transform" | |
| Storyboard.TargetProperty="Angle" | |
| From="180.0" To="-180.0" Duration="0:0:1" | |
| RepeatBehavior="Forever" /> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Ellipse.Triggers> | |
| </Ellipse> | |
| <TextBlock | |
| x:Name="Caption" | |
| Grid.Column="1" | |
| HorizontalAlignment="Left" | |
| VerticalAlignment="Center" | |
| Margin="4,0,0,0" | |
| FontFamily="Segoe UI" | |
| FontSize="12" | |
| Opacity="1" | |
| Foreground="#000" | |
| Text="{Binding Path=Title, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" | |
| /> | |
| <Button | |
| x:Name="MinButton" | |
| Grid.Column="2" | |
| VerticalAlignment="Top" | |
| Width="34" | |
| Height="26" | |
| Style="{StaticResource WindowStyleTitleBarButton}" | |
| Click="MinButtonClick" | |
| WindowChrome.IsHitTestVisibleInChrome="True" | |
| > | |
| <Grid MaxHeight="9" MaxWidth="9"> | |
| <Path | |
| Stroke="{Binding RelativeSource={RelativeSource AncestorType=Button}, Path=Foreground}" | |
| StrokeThickness="1" | |
| Stretch="None" | |
| RenderOptions.EdgeMode="Aliased" | |
| Data="M0,8 H8 M0,7 H8 M0,6 H8" | |
| /> | |
| </Grid> | |
| </Button> | |
| <Button | |
| Grid.Column="3" | |
| x:Name="MaxButton" | |
| VerticalAlignment="Top" | |
| Width="34" | |
| Height="26" | |
| Style="{StaticResource WindowStyleTitleBarButton}" | |
| Click="MaxButtonClick" | |
| WindowChrome.IsHitTestVisibleInChrome="True" | |
| > | |
| <Grid MaxHeight="9" MaxWidth="9"> | |
| <Path | |
| x:Name="PART_MaxButton_Path" | |
| Stroke="{Binding RelativeSource={RelativeSource AncestorType=Button}, Path=Foreground}" | |
| StrokeThickness="1" | |
| Stretch="None" | |
| RenderOptions.EdgeMode="Aliased" | |
| Data="M0,0 H8 V8 H0 V0 M0,1 H8 M0,2 H8" | |
| /> | |
| </Grid> | |
| </Button> | |
| <Button | |
| Grid.Column="4" | |
| x:Name="CloseButton" | |
| VerticalAlignment="Top" | |
| Width="34" | |
| Height="26" | |
| Style="{StaticResource WindowStyleTitleBarButton}" | |
| Click="CloseButtonClick" | |
| WindowChrome.IsHitTestVisibleInChrome="True" | |
| > | |
| <Grid MaxHeight="9" MaxWidth="9"> | |
| <Path | |
| Stroke="{Binding RelativeSource={RelativeSource AncestorType=Button}, Path=Foreground}" | |
| StrokeThickness="1.5" | |
| Stretch="None" | |
| Data="M0,0 L8,8 M0,8 L8,0" | |
| /> | |
| </Grid> | |
| </Button> | |
| </Grid> | |
| </Border> | |
| <ContentPresenter /> | |
| </DockPanel> | |
| </Border> | |
| </Grid> | |
| </Border> | |
| <ControlTemplate.Triggers> | |
| <Trigger Property="WindowState" Value="Maximized"> | |
| <Setter TargetName="PART_MaxButton_Path" Property="Data" Value="M0,3 H5 V8 H0 V3 M0,4 H5 M3,0 H8 V5 H7 M3,1 H8"/> | |
| </Trigger> | |
| <Trigger Property="WindowState" Value="Normal"> | |
| <Setter TargetName="PART_Border" Property="Effect"> | |
| <Setter.Value> | |
| <DropShadowEffect | |
| Color="black" | |
| Opacity="0.5" | |
| BlurRadius="7" | |
| ShadowDepth="2" | |
| Direction="315"/> | |
| </Setter.Value> | |
| </Setter> | |
| </Trigger> | |
| <Trigger Property="IsActive" Value="False"> | |
| <Setter TargetName="PART_Border" Property="BorderBrush" Value="{StaticResource WindowBorderBrushInactive}"/> | |
| </Trigger> | |
| </ControlTemplate.Triggers> | |
| </ControlTemplate> | |
| </Setter.Value> | |
| </Setter> | |
| <Style.Resources> | |
| <Style TargetType="{x:Type StatusBar}"> | |
| <Setter Property="Foreground" Value="{StaticResource WindowStatusForeground}" /> | |
| <Setter Property="Background" Value="{StaticResource WindowBorderBrush}" /> | |
| <Style.Triggers> | |
| <DataTrigger Binding="{Binding IsActive, RelativeSource={RelativeSource AncestorType=Window}}" Value="False"> | |
| <Setter Property="Foreground" Value="{StaticResource WindowStatusForegroundInactive}" /> | |
| <Setter Property="Background" Value="{StaticResource WindowBorderBrushInactive}" /> | |
| </DataTrigger> | |
| </Style.Triggers> | |
| </Style> | |
| <Style TargetType="{x:Type ResizeGrip}"> | |
| <Setter Property="WindowChrome.ResizeGripDirection" Value="BottomRight" /> | |
| </Style> | |
| </Style.Resources> | |
| </Style> | |
| <ControlTemplate x:Key="SimpleAnimationTemplate"> | |
| <Grid HorizontalAlignment="Center" VerticalAlignment="Center"> | |
| <StackPanel Margin="10"> | |
| <Label | |
| Padding="0,20" | |
| >Исчезновение, появление и изменение размера элементов с разной продолжительностью анимации.</Label> | |
| <Rectangle | |
| Name="MyRectangle1" | |
| Width="100" | |
| Height="100" | |
| Fill="Blue"> | |
| <Rectangle.Triggers> | |
| <EventTrigger RoutedEvent="Rectangle.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimation | |
| Storyboard.TargetName="MyRectangle1" | |
| Storyboard.TargetProperty="Opacity" | |
| From="1.0" To="0.0" Duration="0:0:5" | |
| AutoReverse="True" RepeatBehavior="Forever" /> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Rectangle.Triggers> | |
| </Rectangle> | |
| <Ellipse | |
| Name="AnotherElement1" | |
| Margin="0,20,0,0" | |
| Height="100" | |
| Width="100" | |
| Fill="#99FF0000"> | |
| <Ellipse.Triggers> | |
| <EventTrigger RoutedEvent="Ellipse.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimation | |
| Storyboard.TargetName="AnotherElement1" | |
| Storyboard.TargetProperty="Opacity" | |
| From="1.0" To="0.5" Duration="0:0:0.1" | |
| AutoReverse="True" RepeatBehavior="Forever" /> | |
| <DoubleAnimation | |
| Storyboard.TargetName="AnotherElement1" | |
| Storyboard.TargetProperty="Width" | |
| From="100.0" To="150" Duration="0:0:1" | |
| AutoReverse="True" RepeatBehavior="Forever" /> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Ellipse.Triggers> | |
| </Ellipse> | |
| </StackPanel> | |
| </Grid> | |
| </ControlTemplate> | |
| <ControlTemplate x:Key="SimpleColorAnimationTemplate"> | |
| <Grid HorizontalAlignment="Center" VerticalAlignment="Center"> | |
| <StackPanel Margin="10"> | |
| <Label | |
| Padding="0,20" | |
| >Изменение цвета (щелкните, чтобы запустить анимацию)</Label> | |
| <Button | |
| Name="MyRectangle2" | |
| Width="100" | |
| Height="100" | |
| Background="GreenYellow"> | |
| <Button.Triggers> | |
| <EventTrigger RoutedEvent="Button.Click"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <ColorAnimation | |
| Storyboard.TargetName="MyRectangle2" | |
| Storyboard.TargetProperty="Background.Color" | |
| From="Cyan" To="Indigo" Duration="0:0:5" | |
| AutoReverse="True" RepeatBehavior="Forever" /> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Button.Triggers> | |
| </Button> | |
| </StackPanel> | |
| </Grid> | |
| </ControlTemplate> | |
| <ControlTemplate x:Key="TargetCadresAnimation"> | |
| <Grid HorizontalAlignment="Center" VerticalAlignment="Center"> | |
| <StackPanel Margin="10"> | |
| <Label | |
| Padding="0,20" | |
| >Анимация по полным кадрам. Линейная интерполяция. (Нажите, чтобы начать)</Label> | |
| <Rectangle Width="50" Height="50" HorizontalAlignment="Left" | |
| Fill="#DDFE6A6A" RadiusX="10" RadiusY="10"> | |
| <Rectangle.RenderTransform> | |
| <TranslateTransform | |
| x:Name="MyAnimatedTranslateTransform1" | |
| X="0" Y="0" /> | |
| </Rectangle.RenderTransform> | |
| <Rectangle.Triggers> | |
| <EventTrigger RoutedEvent="Rectangle.MouseLeftButtonDown"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimationUsingKeyFrames | |
| Storyboard.TargetName="MyAnimatedTranslateTransform1" | |
| Storyboard.TargetProperty="X" | |
| AutoReverse="True" | |
| RepeatBehavior="Forever"> | |
| <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0" /> | |
| <LinearDoubleKeyFrame Value="-100" KeyTime="0:0:1" /> | |
| <LinearDoubleKeyFrame Value="-100" KeyTime="0:0:2" /> | |
| <LinearDoubleKeyFrame Value="200" KeyTime="0:0:4" /> | |
| <LinearDoubleKeyFrame Value="200" KeyTime="0:0:6" /> | |
| <LinearDoubleKeyFrame Value="-100" KeyTime="0:0:8" /> | |
| <LinearDoubleKeyFrame Value="0" KeyTime="0:0:10" /> | |
| </DoubleAnimationUsingKeyFrames> | |
| <DoubleAnimationUsingKeyFrames | |
| Storyboard.TargetName="MyAnimatedTranslateTransform1" | |
| Storyboard.TargetProperty="Y" | |
| AutoReverse="True" | |
| RepeatBehavior="Forever"> | |
| <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0" /> | |
| <LinearDoubleKeyFrame Value="-100" KeyTime="0:0:1" /> | |
| <LinearDoubleKeyFrame Value="150" KeyTime="0:0:2" /> | |
| <LinearDoubleKeyFrame Value="150" KeyTime="0:0:4" /> | |
| <LinearDoubleKeyFrame Value="-100" KeyTime="0:0:6" /> | |
| <LinearDoubleKeyFrame Value="-100" KeyTime="0:0:8" /> | |
| <LinearDoubleKeyFrame Value="0" KeyTime="0:0:10" /> | |
| </DoubleAnimationUsingKeyFrames> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Rectangle.Triggers> | |
| </Rectangle> | |
| </StackPanel> | |
| </Grid> | |
| </ControlTemplate> | |
| <ControlTemplate x:Key="TargetCadresAnimationSpline"> | |
| <Grid HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="10,0"> | |
| <ScrollViewer | |
| CanContentScroll="True" | |
| VerticalScrollBarVisibility="Auto" | |
| HorizontalScrollBarVisibility="Hidden" | |
| MaxHeight="500"> | |
| <StackPanel Margin="10"> | |
| <Label | |
| Padding="0,20" | |
| FontWeight="Bold" | |
| FontSize="18" | |
| >Анимация по полным кадрам с нестандартной интерполяцией | |
| </Label> | |
| <Label | |
| Padding="0,10" | |
| >Пример использования Clock для анимации | |
| </Label> | |
| <StackPanel Margin="0,0,0,10" Orientation="Horizontal"> | |
| <Button | |
| Click="buttonClick1"> | |
| Начать анимацию ширины | |
| </Button> | |
| <Slider Visibility="Hidden" Name="trackBar1" Margin="10,0" Width="150" Maximum="1"/> | |
| </StackPanel> | |
| <Rectangle Width="50" Height="50" HorizontalAlignment="Left" | |
| Fill="#DDFE6A6A" RadiusX="10" RadiusY="10" Name="rect1"> | |
| <Rectangle.RenderTransform> | |
| <TranslateTransform | |
| x:Name="MyAnimatedTranslateTransform2" | |
| X="0" Y="0" /> | |
| </Rectangle.RenderTransform> | |
| <Rectangle.Triggers> | |
| <EventTrigger RoutedEvent="Rectangle.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimationUsingKeyFrames | |
| Storyboard.TargetName="MyAnimatedTranslateTransform2" | |
| Storyboard.TargetProperty="X" | |
| AutoReverse="True" | |
| RepeatBehavior="Forever"> | |
| <SplineDoubleKeyFrame Value="0" KeyTime="0:0:0" KeySpline="0.5,1.0 1.0,0.5"/> | |
| <SplineDoubleKeyFrame Value="300" KeyTime="0:0:1" KeySpline="0.2,0.5 0.4,0.9"/> | |
| </DoubleAnimationUsingKeyFrames> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Rectangle.Triggers> | |
| </Rectangle> | |
| <Rectangle Width="50" Height="50" HorizontalAlignment="Left" | |
| Fill="#DDFE6A6A" RadiusX="10" RadiusY="10" Margin="0,10,0,0"> | |
| <Rectangle.RenderTransform> | |
| <TranslateTransform | |
| x:Name="MyAnimatedTranslateTransform3" | |
| X="0" Y="0" /> | |
| </Rectangle.RenderTransform> | |
| <Rectangle.Triggers> | |
| <EventTrigger RoutedEvent="Rectangle.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimationUsingKeyFrames | |
| Storyboard.TargetName="MyAnimatedTranslateTransform3" | |
| Storyboard.TargetProperty="X" | |
| AutoReverse="True" | |
| RepeatBehavior="Forever"> | |
| <SplineDoubleKeyFrame Value="0" KeyTime="0:0:0" KeySpline="0.1,1.0 1.0,1.0"/> | |
| <SplineDoubleKeyFrame Value="300" KeyTime="0:0:1" KeySpline="1.0,0.1 0.0,1.0"/> | |
| </DoubleAnimationUsingKeyFrames> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Rectangle.Triggers> | |
| </Rectangle> | |
| <Rectangle Width="50" Height="50" HorizontalAlignment="Left" | |
| Fill="#DDFE6A6A" RadiusX="10" RadiusY="10" Margin="0,10,0,0"> | |
| <Rectangle.RenderTransform> | |
| <TranslateTransform | |
| x:Name="MyAnimatedTranslateTransform4" | |
| X="0" Y="0" /> | |
| </Rectangle.RenderTransform> | |
| <Rectangle.Triggers> | |
| <EventTrigger RoutedEvent="Rectangle.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimationUsingKeyFrames | |
| Storyboard.TargetName="MyAnimatedTranslateTransform4" | |
| Storyboard.TargetProperty="X" | |
| AutoReverse="True" | |
| RepeatBehavior="Forever"> | |
| <SplineDoubleKeyFrame Value="0" KeyTime="0:0:0" KeySpline="0.1,1.0 1.0,1.0"/> | |
| <SplineDoubleKeyFrame Value="300" KeyTime="0:0:1" KeySpline="0.0,1.0 1.0,0.0"/> | |
| </DoubleAnimationUsingKeyFrames> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Rectangle.Triggers> | |
| </Rectangle> | |
| <Rectangle Width="50" Height="50" HorizontalAlignment="Left" | |
| Fill="#DDFE6A6A" RadiusX="10" RadiusY="10" Margin="0,10,0,0"> | |
| <Rectangle.RenderTransform> | |
| <TranslateTransform | |
| x:Name="MyAnimatedTranslateTransform5" | |
| X="0" Y="0" /> | |
| </Rectangle.RenderTransform> | |
| <Rectangle.Triggers> | |
| <EventTrigger RoutedEvent="Rectangle.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimationUsingKeyFrames | |
| Storyboard.TargetName="MyAnimatedTranslateTransform5" | |
| Storyboard.TargetProperty="X" | |
| AutoReverse="True" | |
| RepeatBehavior="Forever"> | |
| <SplineDoubleKeyFrame Value="150" KeyTime="0:0:0.5" KeySpline="0.0,1.0 1.0,0.0" /> | |
| <SplineDoubleKeyFrame Value="250" KeyTime="0:0:0.9" KeySpline="0.0,0.0 1.0,0.0" /> | |
| <SplineDoubleKeyFrame Value="300" KeyTime="0:0:1" KeySpline="0.25,0.5 0.75,1" /> | |
| </DoubleAnimationUsingKeyFrames> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Rectangle.Triggers> | |
| </Rectangle> | |
| <Label | |
| Padding="0,20" | |
| >Анимация с собственной интерполирующей функцией (t^7)</Label> | |
| <Rectangle Width="50" Height="50" HorizontalAlignment="Left" | |
| Fill="#DDFE6A6A" RadiusX="10" RadiusY="10" Margin="0,10,0,0"> | |
| <Rectangle.RenderTransform> | |
| <TranslateTransform | |
| x:Name="MyAnimatedTranslateTransform6" | |
| X="0" Y="0" /> | |
| </Rectangle.RenderTransform> | |
| <Rectangle.Triggers> | |
| <EventTrigger RoutedEvent="Rectangle.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimation | |
| Storyboard.TargetName="MyAnimatedTranslateTransform6" | |
| Storyboard.TargetProperty="X" | |
| AutoReverse="True" | |
| RepeatBehavior="Forever" | |
| Duration="00:00:1" | |
| From="0" To="300"> | |
| <DoubleAnimation.EasingFunction> | |
| <CustomEase:CustomSeventhPowerEasingFunction EasingMode="EaseIn"/> | |
| </DoubleAnimation.EasingFunction> | |
| </DoubleAnimation> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Rectangle.Triggers> | |
| </Rectangle> | |
| </StackPanel> | |
| </ScrollViewer> | |
| </Grid> | |
| </ControlTemplate> | |
| <ControlTemplate x:Key="TargetCadresAnimationSolarSystem"> | |
| <DockPanel Background="#000"> | |
| <Grid HorizontalAlignment="Center" VerticalAlignment="Center"> | |
| <StackPanel Margin="10"> | |
| <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> | |
| <Ellipse Stroke="#FFF3F3F3" Width="400" Height="400" Opacity="0.3"></Ellipse> | |
| <Ellipse Stroke="#FFF3F3F3" Width="360" Height="360" Opacity="0.3"></Ellipse> | |
| <Ellipse Stroke="#FFF3F3F3" Width="320" Height="320" Opacity="0.3"></Ellipse> | |
| <Ellipse Stroke="#FFF3F3F3" Width="280" Height="280" Opacity="0.3"></Ellipse> | |
| <Ellipse Stroke="#FFF3F3F3" Width="220" Height="220" Opacity="0.3"></Ellipse> | |
| <Ellipse Stroke="#FFF3F3F3" Width="190" Height="190" Opacity="0.3"></Ellipse> | |
| <Ellipse Stroke="#FFF3F3F3" Width="150" Height="150" Opacity="0.3"></Ellipse> | |
| <Ellipse Stroke="#FFF3F3F3" Width="110" Height="110" Opacity="0.3"></Ellipse> | |
| <!-- Солнце --> | |
| <Ellipse x:Name="Solar" Stroke="#FFE2AF2F" Width="50" Height="50"> | |
| <Ellipse.Fill> | |
| <RadialGradientBrush> | |
| <GradientStop Color="#FFFFE502" Offset="0.643"/> | |
| <GradientStop Color="#FFFDB51B" Offset="1"/> | |
| </RadialGradientBrush> | |
| </Ellipse.Fill> | |
| </Ellipse> | |
| <!-- Земля --> | |
| <Ellipse x:Name="Earth" Stroke="#FF2F5DDC" Width="10" Height="10" | |
| Margin="185,5,0,0"> | |
| <Ellipse.Fill> | |
| <RadialGradientBrush> | |
| <GradientStop Color="#FF2CC514"/> | |
| <GradientStop Color="#FF2886C0" Offset="0.896"/> | |
| </RadialGradientBrush> | |
| </Ellipse.Fill> | |
| <Ellipse.RenderTransform> | |
| <RotateTransform | |
| x:Name="earthTransform" | |
| Angle="0" | |
| CenterX="-88" | |
| CenterY="0" /> | |
| </Ellipse.RenderTransform> | |
| <Ellipse.Triggers> | |
| <EventTrigger RoutedEvent="Ellipse.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimation | |
| Storyboard.TargetName="earthTransform" | |
| Storyboard.TargetProperty="Angle" | |
| From="0.0" To="360.0" Duration="0:0:7" | |
| RepeatBehavior="Forever" /> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Ellipse.Triggers> | |
| </Ellipse> | |
| <!-- Меркурий --> | |
| <Ellipse x:Name="Mercury" Stroke="#FF3D290A" Width="5" Height="5" | |
| Margin="110,5,0,0"> | |
| <Ellipse.Fill> | |
| <RadialGradientBrush> | |
| <GradientStop Color="#FFAE8212"/> | |
| <GradientStop Color="#FF715B16" Offset="1"/> | |
| </RadialGradientBrush> | |
| </Ellipse.Fill> | |
| <Ellipse.RenderTransform> | |
| <RotateTransform | |
| x:Name="mercuryTransform" | |
| Angle="0" | |
| CenterX="-53" | |
| CenterY="0" /> | |
| </Ellipse.RenderTransform> | |
| <Ellipse.Triggers> | |
| <EventTrigger RoutedEvent="Ellipse.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimation | |
| Storyboard.TargetName="mercuryTransform" | |
| Storyboard.TargetProperty="Angle" | |
| From="0.0" To="360.0" Duration="0:0:1" | |
| RepeatBehavior="Forever" /> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Ellipse.Triggers> | |
| </Ellipse> | |
| <!-- Венера --> | |
| <Ellipse x:Name="Venera" Stroke="#FFF0D321" Width="11" Height="11" | |
| Margin="150,5,0,0"> | |
| <Ellipse.Fill> | |
| <RadialGradientBrush> | |
| <GradientStop Color="#FFFFDE12"/> | |
| <GradientStop Color="#FFB79220" Offset="1"/> | |
| </RadialGradientBrush> | |
| </Ellipse.Fill> | |
| <Ellipse.RenderTransform> | |
| <RotateTransform | |
| x:Name="veneraTransform" | |
| Angle="0" | |
| CenterX="-70" | |
| CenterY="3" /> | |
| </Ellipse.RenderTransform> | |
| <Ellipse.Triggers> | |
| <EventTrigger RoutedEvent="Ellipse.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimation | |
| Storyboard.TargetName="veneraTransform" | |
| Storyboard.TargetProperty="Angle" | |
| From="0.0" To="360.0" Duration="0:0:3" | |
| RepeatBehavior="Forever" /> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Ellipse.Triggers> | |
| </Ellipse> | |
| <!-- Марс --> | |
| <Ellipse x:Name="Mars" Stroke="#FFC25F1F" Width="5" Height="5" | |
| Margin="220,6,0,0"> | |
| <Ellipse.Fill> | |
| <RadialGradientBrush> | |
| <GradientStop Color="#FFFF6500"/> | |
| <GradientStop Color="#FFE03C0F" Offset="1"/> | |
| </RadialGradientBrush> | |
| </Ellipse.Fill> | |
| <Ellipse.RenderTransform> | |
| <RotateTransform | |
| x:Name="marsTransform" | |
| Angle="0" | |
| CenterX="-106" | |
| CenterY="0" /> | |
| </Ellipse.RenderTransform> | |
| <Ellipse.Triggers> | |
| <EventTrigger RoutedEvent="Ellipse.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimation | |
| Storyboard.TargetName="marsTransform" | |
| Storyboard.TargetProperty="Angle" | |
| From="0.0" To="360.0" Duration="0:0:10" | |
| RepeatBehavior="Forever" /> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Ellipse.Triggers> | |
| </Ellipse> | |
| <!-- Юпитер --> | |
| <Ellipse x:Name="Yupiter" Stroke="#FFCD9135" Width="20" Height="20" | |
| Margin="280,0,0,0"> | |
| <Ellipse.Fill> | |
| <RadialGradientBrush> | |
| <GradientStop Color="#FFFFE184"/> | |
| <GradientStop Color="#FFC8A665" Offset="1"/> | |
| </RadialGradientBrush> | |
| </Ellipse.Fill> | |
| <Ellipse.RenderTransform> | |
| <RotateTransform | |
| x:Name="YupiterTransform" | |
| Angle="0" | |
| CenterX="-130" | |
| CenterY="10" /> | |
| </Ellipse.RenderTransform> | |
| <Ellipse.Triggers> | |
| <EventTrigger RoutedEvent="Ellipse.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimation | |
| Storyboard.TargetName="YupiterTransform" | |
| Storyboard.TargetProperty="Angle" | |
| From="0.0" To="360.0" Duration="0:0:15" | |
| RepeatBehavior="Forever" /> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Ellipse.Triggers> | |
| </Ellipse> | |
| <!-- Сатурн --> | |
| <Ellipse x:Name="Saturn" Stroke="#FF3D290A" Width="18" Height="18" | |
| Margin="320,0,0,0"> | |
| <Ellipse.Fill> | |
| <RadialGradientBrush> | |
| <GradientStop Color="#FFAE8212"/> | |
| <GradientStop Color="#FF715B16" Offset="1"/> | |
| </RadialGradientBrush> | |
| </Ellipse.Fill> | |
| <Ellipse.RenderTransform> | |
| <RotateTransform | |
| x:Name="SaturnTransform" | |
| Angle="0" | |
| CenterX="-150" | |
| CenterY="10" /> | |
| </Ellipse.RenderTransform> | |
| <Ellipse.Triggers> | |
| <EventTrigger RoutedEvent="Ellipse.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimation | |
| Storyboard.TargetName="SaturnTransform" | |
| Storyboard.TargetProperty="Angle" | |
| From="0.0" To="360.0" Duration="0:0:20" | |
| RepeatBehavior="Forever" /> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Ellipse.Triggers> | |
| </Ellipse> | |
| <Ellipse x:Name="SaturnCircle" Stroke="#44FFFFFF" StrokeThickness="6" Width="33" Height="38" | |
| Margin="320,0,0,0"> | |
| <Ellipse.RenderTransform> | |
| <RotateTransform | |
| x:Name="SaturnCircleTransform" | |
| Angle="0" | |
| CenterX="-143" | |
| CenterY="20" /> | |
| </Ellipse.RenderTransform> | |
| <Ellipse.Triggers> | |
| <EventTrigger RoutedEvent="Ellipse.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimation | |
| Storyboard.TargetName="SaturnCircleTransform" | |
| Storyboard.TargetProperty="Angle" | |
| From="0.0" To="360.0" Duration="0:0:20" | |
| RepeatBehavior="Forever" /> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Ellipse.Triggers> | |
| </Ellipse> | |
| <!-- Уран --> | |
| <Ellipse x:Name="Uran" Stroke="#FF12989A" Width="14" Height="14" | |
| Margin="360,0,0,0"> | |
| <Ellipse.Fill> | |
| <RadialGradientBrush> | |
| <GradientStop Color="#FFB3F5FF"/> | |
| <GradientStop Color="#FF6AE1F7" Offset="1"/> | |
| </RadialGradientBrush> | |
| </Ellipse.Fill> | |
| <Ellipse.RenderTransform> | |
| <RotateTransform | |
| x:Name="UranTransform" | |
| Angle="0" | |
| CenterX="-172" | |
| CenterY="10" /> | |
| </Ellipse.RenderTransform> | |
| <Ellipse.Triggers> | |
| <EventTrigger RoutedEvent="Ellipse.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimation | |
| Storyboard.TargetName="UranTransform" | |
| Storyboard.TargetProperty="Angle" | |
| From="0.0" To="360.0" Duration="0:0:25" | |
| RepeatBehavior="Forever" /> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Ellipse.Triggers> | |
| </Ellipse> | |
| <!-- Нептун --> | |
| <Ellipse x:Name="Neptun" Stroke="#FF2F5DDC" Width="14" Height="14" | |
| Margin="400,0,0,0"> | |
| <Ellipse.Fill> | |
| <RadialGradientBrush> | |
| <GradientStop Color="#FF43D3E8"/> | |
| <GradientStop Color="#FF017186" Offset="1"/> | |
| </RadialGradientBrush> | |
| </Ellipse.Fill> | |
| <Ellipse.RenderTransform> | |
| <RotateTransform | |
| x:Name="NeptunTransform" | |
| Angle="0" | |
| CenterX="-192" | |
| CenterY="10" /> | |
| </Ellipse.RenderTransform> | |
| <Ellipse.Triggers> | |
| <EventTrigger RoutedEvent="Ellipse.Loaded"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <DoubleAnimation | |
| Storyboard.TargetName="NeptunTransform" | |
| Storyboard.TargetProperty="Angle" | |
| From="0.0" To="360.0" Duration="0:0:30" | |
| RepeatBehavior="Forever" /> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Ellipse.Triggers> | |
| </Ellipse> | |
| </Grid> | |
| </StackPanel> | |
| </Grid> | |
| </DockPanel> | |
| </ControlTemplate> | |
| <ControlTemplate x:Key="PathAnimation"> | |
| <DockPanel Background="#FFF"> | |
| <Grid HorizontalAlignment="Center" VerticalAlignment="Center"> | |
| <StackPanel Margin="10"> | |
| <Label Padding="0,10"> | |
| Анимация с использованием пути (щелкните, чтобы начать) | |
| </Label> | |
| <Rectangle Width="50" Height="50" HorizontalAlignment="Left" | |
| Fill="#DDEE6A6A" RadiusX="10" RadiusY="10"> | |
| <Rectangle.RenderTransform> | |
| <MatrixTransform x:Name="RectMatrixTransform" /> | |
| </Rectangle.RenderTransform> | |
| <Rectangle.Triggers> | |
| <EventTrigger RoutedEvent="Rectangle.MouseLeftButtonDown"> | |
| <BeginStoryboard> | |
| <Storyboard> | |
| <MatrixAnimationUsingPath | |
| Storyboard.TargetName="RectMatrixTransform" | |
| Storyboard.TargetProperty="Matrix" | |
| Duration="0:0:5" | |
| RepeatBehavior="Forever" | |
| AutoReverse="True"> | |
| <MatrixAnimationUsingPath.PathGeometry> | |
| <PathGeometry | |
| Figures="M -100,100 C 35,0 135,0 160,100 180,190 285,200 310,100" | |
| PresentationOptions:Freeze="True" /> | |
| </MatrixAnimationUsingPath.PathGeometry> | |
| </MatrixAnimationUsingPath> | |
| </Storyboard> | |
| </BeginStoryboard> | |
| </EventTrigger> | |
| </Rectangle.Triggers> | |
| </Rectangle> | |
| </StackPanel> | |
| </Grid> | |
| </DockPanel> | |
| </ControlTemplate> | |
| </ResourceDictionary> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment