ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • WPF 2D Composite Transforms
    .NET/WPF 2D 2013. 7. 4. 01:07
    반응형










    <Window x:Class="WpfApplication14.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Combining Transforms" Height="330" Width="300">
    <Window.Resources >
    <SolidColorBrush x:Key="MyGrayGridBrush" Color="YellowGreen"/>
    </Window.Resources>
    <Viewbox Stretch="Uniform">
    <StackPanel>
    <TextBlock HorizontalAlignment="Center" 
            Margin="10,10,10,0" TextWrapping="Wrap" 
            FontSize="14" FontWeight="Bold" 
        Text="Animation of Combining Transform"/>
    <Border Margin="10" BorderBrush="Black" 
        BorderThickness="1" 
        Background="{StaticResource MyGrayGridBrush}" 
        HorizontalAlignment="Left">
    <Canvas ClipToBounds="True"  
            Width="340" Height="320">
    	<Ellipse Canvas.Left="165" 
                    Canvas.Top="145" Width="10"  
                    Height="10" Fill="Red"/>
     
    	<Rectangle Canvas.Left="120" 
                    Canvas.Top="100" Width="100"  
                    Height="100" Fill="LightCoral" 
                    Opacity="0.5" Stroke="Black" 
                    StrokeThickness="2">
    		<Rectangle.RenderTransform>
    			<TransformGroup>
    				<ScaleTransform x:Name="scale" 
                                    CenterX="50" 
                                    CenterY="50" />
    				<RotateTransform 
                        x:Name="rotate" 
                        CenterX="50" 
                        CenterY="50"/>
    			</TransformGroup>
    		</Rectangle.RenderTransform>
    	</Rectangle>
     
    	<!-- Animate the shape: -->
    	<Canvas.Triggers>
    		<EventTrigger RoutedEvent="Canvas.Loaded">
    			<BeginStoryboard>
    				<Storyboard RepeatBehavior="Forever"  
                AutoReverse="True">
    					<DoubleAnimation Storyboard.TargetName="scale" 
                Storyboard.TargetProperty="ScaleX" 
                From="0" To="3" Duration="0:0:5"/>
    					<DoubleAnimation Storyboard.TargetName="scale" 
                Storyboard.TargetProperty="ScaleY" 
                From="0" To="3" Duration="0:0:5"/>
    					<DoubleAnimation Storyboard.TargetName="rotate" 
                Storyboard.TargetProperty="Angle" 
                From="0" To="360" Duration="0:0:5"/>
    				</Storyboard>
    			</BeginStoryboard>
    		</EventTrigger>
    	</Canvas.Triggers>
    </Canvas>
    </Border>
    </StackPanel>
    </Viewbox>
    </Window>   




    TransformGroup tg = new TransformGroup(); 

    tg.Children.Add(ScaleTransform(2, 3)); 

    tg.Children.Add(TranslateTransform(100, -100)); 

    tg.Children.Add(RotateTransform(45)); 

    tg.Children.Add(SkewTransform(30, 45)); 

    Rectangle.RenderTransform = tg; 



    reference : Practical WPF Graphics Programming








    반응형

    '.NET > WPF 2D' 카테고리의 다른 글

    WPF 2D PathGeometry Class  (0) 2013.07.11
    WPF 2D Combined Geometry  (0) 2013.07.11
    WPF 2D Geometry Group  (0) 2013.07.11
    WPF Geometry and 2D Drawing  (0) 2013.07.11
    WPF 2D SkewTransform  (0) 2013.07.04
    WPF 2D RotateTransform  (0) 2013.07.04
    WPF 2D TranslateTransform  (0) 2013.07.03
    WPF 2D Scale Transforms  (0) 2013.06.28

    댓글

Designed by Tistory.