■ ScaleTransform 클래스 사용하기
------------------------------------------------------------------------------------------------------------------------
▶ 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="ScaleTransform 클래스 사용하기" FontFamily="나눔고딕코딩" FontSize="12"> <Window.Resources> <DrawingBrush x:Key="BlueGridDrawingBrushKey" ViewportUnits="Absolute" Viewport="0 0 10 10" TileMode="Tile"> <DrawingBrush.Drawing> <DrawingGroup> <DrawingGroup.Children> <GeometryDrawing Brush="White"> <GeometryDrawing.Geometry> <RectangleGeometry Rect="0 0 1 1" /> </GeometryDrawing.Geometry> </GeometryDrawing> <GeometryDrawing Geometry="M 0 0 L 1 0 1 0.1 0 0.1 Z" Brush="#ccccff" /> <GeometryDrawing Geometry="M 0 0 L 0 1 0.1 1 0.1 0 Z" Brush="#ccccff" /> </DrawingGroup.Children> </DrawingGroup> </DrawingBrush.Drawing> </DrawingBrush> <Style TargetType="{x:Type Border}"> <Setter Property="BorderThickness" Value="1" /> <Setter Property="BorderBrush" Value="Black" /> </Style> <Style TargetType="{x:Type TextBlock}"> <Setter Property="Padding" Value="5" /> <Setter Property="FontWeight" Value="Bold" /> </Style> <Style TargetType="{x:Type Rectangle}" x:Key="MarkerRectangleStyle"> <Setter Property="Canvas.Left" Value="100" /> <Setter Property="Canvas.Top" Value="100" /> <Setter Property="Width" Value="50" /> <Setter Property="Height" Value="50" /> <Setter Property="StrokeThickness" Value="2" /> <Setter Property="StrokeDashArray" Value="4 1" /> <Setter Property="Stroke" Value="#99000000" /> </Style> </Window.Resources> <Border Margin="10"> <ScrollViewer> <WrapPanel Margin="10"> <Border Margin="10" Background="{StaticResource BlueGridDrawingBrushKey}"> <Canvas Width="250" Height="250"> <TextBlock> 확대/축소 미적용 </TextBlock> <Rectangle Canvas.Left="100" Canvas.Top="100" Width="50" Height="50" Fill="#ccccccff" /> </Canvas> </Border> <Border Margin="10" Background="{StaticResource BlueGridDrawingBrushKey}"> <Canvas Width="250" Height="250"> <TextBlock> X축 확대/축소 : 2<LineBreak /> Y축 확대/축소 : 2<LineBreak /> 중심 : (0, 0) </TextBlock> <Rectangle Canvas.Left="100" Canvas.Top="100" Width="50" Height="50" StrokeThickness="2" Stroke="Blue" Fill="#ccccccff"> <Rectangle.RenderTransform> <ScaleTransform CenterX="0" CenterY="0" ScaleX="2" ScaleY="2" /> </Rectangle.RenderTransform> </Rectangle> <Rectangle Style="{StaticResource MarkerRectangleStyle}" /> </Canvas> </Border> <Border Margin="10" Background="{StaticResource BlueGridDrawingBrushKey}"> <Canvas Width="250" Height="250"> <TextBlock> X축 확대/축소 : 2<LineBreak /> Y축 확대/축소 : 2<LineBreak /> 중심 : (25, 25) </TextBlock> <Rectangle Canvas.Left="100" Canvas.Top="100" Width="50" Height="50" StrokeThickness="2" Stroke="Blue" Fill="#ccccccff"> <Rectangle.RenderTransform> <ScaleTransform CenterX="25" CenterY="25" ScaleX="2" ScaleY="2" /> </Rectangle.RenderTransform> </Rectangle> <Rectangle Style="{StaticResource MarkerRectangleStyle}" /> </Canvas> </Border> <Border Margin="10" Background="{StaticResource BlueGridDrawingBrushKey}"> <Canvas Width="250" Height="250"> <TextBlock> X축 확대/축소 : 0.5<LineBreak /> Y축 확대/축소 : 0.5<LineBreak /> 중심 : (25, 25) </TextBlock> <Rectangle Canvas.Left="100" Canvas.Top="100" Width="50" Height="50" StrokeThickness="2" Stroke="Blue" Fill="#ccccccff"> <Rectangle.RenderTransform> <ScaleTransform CenterX="25" CenterY="25" ScaleX="0.5" ScaleY="0.5" /> </Rectangle.RenderTransform> </Rectangle> <Rectangle Style="{StaticResource MarkerRectangleStyle}" /> </Canvas> </Border> <Border Margin="10" Background="{StaticResource BlueGridDrawingBrushKey}"> <Canvas Width="250" Height="250"> <TextBlock> X축 확대/축소 : 2<LineBreak /> Y축 확대/축소 : 2<LineBreak /> 중심 : (50%, 50%) </TextBlock> <Rectangle Canvas.Left="100" Canvas.Top="100" Width="50" Height="50" Stroke="Blue" StrokeThickness="2" Fill="#ccccccff" RenderTransformOrigin="0.5 0.5"> <Rectangle.RenderTransform> <ScaleTransform ScaleX="2" ScaleY="2" /> </Rectangle.RenderTransform> </Rectangle> <Rectangle Style="{StaticResource MarkerRectangleStyle}" /> </Canvas> </Border> <Border Margin="10" Background="{StaticResource BlueGridDrawingBrushKey}"> <Canvas Width="250" Height="250"> <TextBlock> X축 확대/축소 : 2<LineBreak /> Y축 확대/축소 : 2<LineBreak /> 중심 : (25%, 25%) </TextBlock> <Rectangle Canvas.Left="100" Canvas.Top="100" Width="50" Height="50" StrokeThickness="2" Stroke="Blue" Fill="#ccccccff" RenderTransformOrigin="0.25 0.25"> <Rectangle.RenderTransform> <ScaleTransform ScaleX="2" ScaleY="2" /> </Rectangle.RenderTransform> </Rectangle> <Rectangle Style="{StaticResource MarkerRectangleStyle}" /> </Canvas> </Border> </WrapPanel> </ScrollViewer> </Border> </Window>
|
------------------------------------------------------------------------------------------------------------------------
'C# > WPF' 카테고리의 다른 글
[C#/WPF] Imaging 클래스 : CreateBitmapSourceFromHBitmap 정적 메소드를 사용해 아이콘에서 비트맵 소스 구하기 (0) | 2020.12.05 |
---|---|
[C#/WPF] Imaging 클래스 : CreateBitmapSourceFromHBitmap 정적 메소드를 사용해 비트맵에서 비트맵 소스 구하기 (0) | 2020.12.05 |
[C#/WPF] TranslateTransform 클래스 사용하기 (0) | 2020.12.05 |
[C#/WPF] SkewTransform 클래스 사용하기 (0) | 2020.12.05 |
[C#/WPF] EventManager 클래스 : RegisterClassHandler 정적 메소드를 사용해 라우팅 이벤트 오버라이딩하기 (0) | 2020.12.01 |
[C#/WPF] ScaleTransform 클래스 사용하기 (0) | 2020.11.24 |
[C#/WPF] RotateTransform 클래스 사용하기 (0) | 2020.11.24 |
[C#/WPF] 확대/축소/이동/드래그 가능한 캔버스 만들기 (0) | 2020.11.15 |
[C#/WPF] DispatcherTimer 클래스 : 원 형태으로 이동시키기 (0) | 2020.11.15 |
[C#/WPF] DispatcherTimer 클래스 : 파동 형태로 이동시키기 (0) | 2020.11.15 |
[C#/WPF] DispatcherTimer 클래스 : 사각형을 부드럽게 이동시키기 (0) | 2020.11.15 |
댓글을 달아 주세요