728x90
728x170
■ TranslateTransform 클래스를 사용하는 방법을 보여준다.
▶ 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="TranslateTransform 클래스 사용하기"
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 : 50<LineBreak />
Y : 0
</TextBlock>
<Rectangle Canvas.Left="100" Canvas.Top="100"
Width="50"
Height="50"
StrokeThickness="2"
Stroke="Blue"
Fill="#ccccccff">
<Rectangle.RenderTransform>
<TranslateTransform X="50" Y="0" />
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Style="{StaticResource MarkerRectangleStyle}" />
</Canvas>
</Border>
<Border Margin="10"
Background="{StaticResource BlueGridDrawingBrushKey}">
<Canvas Width="250" Height="250">
<TextBlock>
X : 0<LineBreak />
Y : 50
</TextBlock>
<Rectangle Canvas.Left="100" Canvas.Top="100"
Width="50"
Height="50"
StrokeThickness="2"
Stroke="Blue"
Fill="#ccccccff">
<Rectangle.RenderTransform>
<TranslateTransform X="0" Y="50" />
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Style="{StaticResource MarkerRectangleStyle}" />
</Canvas>
</Border>
<Border Margin="10"
Background="{StaticResource BlueGridDrawingBrushKey}">
<Canvas Width="250" Height="250">
<TextBlock>
X : 50<LineBreak />
Y : 50
</TextBlock>
<Rectangle Canvas.Left="100" Canvas.Top="100"
Width="50"
Height="50"
StrokeThickness="2"
Stroke="Blue"
Fill="#ccccccff">
<Rectangle.RenderTransform>
<TranslateTransform X="50" Y="50" />
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Style="{StaticResource MarkerRectangleStyle}" />
</Canvas>
</Border>
</WrapPanel>
</ScrollViewer>
</Border>
</Window>
728x90
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] EventTrigger 엘리먼트 : RoutedEvent 속성을 사용해 복권 긁는 효과 만들기 (0) | 2020.12.05 |
---|---|
[C#/WPF] UIElement 클래스 : 복제하기 (0) | 2020.12.05 |
[C#/WPF] Viewport2DVisual3D 엘리먼트 : 곡선 형태의 ScrollBar 사용하기 (0) | 2020.12.05 |
[C#/WPF] Imaging 클래스 : CreateBitmapSourceFromHBitmap 정적 메소드를 사용해 아이콘에서 비트맵 소스 구하기 (0) | 2020.12.05 |
[C#/WPF] Imaging 클래스 : CreateBitmapSourceFromHBitmap 정적 메소드를 사용해 비트맵에서 비트맵 소스 구하기 (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 |