<Window x:Class="WpfApplication6.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Basic 2D Graphics Shapes" Height="800" Width="830"> <Grid> <Line X1="30" Y1="30" X2 ="180" Y2="30" Stroke="Blue" StrokeThickness="2"/> <Line X1="30" Y1="50" X2 ="250" Y2="50" Stroke="Blue" StrokeThickness="2" StrokeDashArray="5,3" /> <Line X1="30" Y1="70" X2 ="250" Y2="70" Stroke="Blue" StrokeThickness="2" StrokeDashArray="5,1,3,2" />
<Line X1="30" Y1="90" X2 ="250" Y2="90" Stroke="Blue" StrokeThickness="2" StrokeDashArray="5,1,3" /> <StackPanel Margin="0,100,0,0" Orientation="Horizontal"> <StackPanel> <TextBlock Text="RadiusX = 0, RadiusY = 0:" Margin="10 10 10 5"/> <Rectangle Width="150" Height="70" Fill="LightGray" Stroke="Black"/> <TextBlock Text="RadiusX = 20, RadiusY = 10:" Margin="10 10 10 5"/> <Rectangle Width="150" Height="70" RadiusX="20" RadiusY="10" Fill="LightGray" Stroke="Black"/> <TextBlock Text="RadiusX = 75, RadiusY = 35:" Margin="10 10 10 5"/> <Rectangle Width="150" Height="70" RadiusX="75" RadiusY="35" Fill="LightGray" Stroke="Black"/> <TextBlock Text="Ellipse:" Margin="10 10 10 5"/> <Ellipse Width="150" Height="70" Fill="LightGray" Stroke="Black"/> <TextBlock Text="Circle:" Margin="10 10 10 5"/> <Ellipse Width="100" Height="100" Fill="LightGray" Stroke="Black"/> </StackPanel> <StackPanel Margin="10,0,0,0"
HorizontalAlignment="Stretch" VerticalAlignment="Top" Width="Auto" >
<Grid ShowGridLines="True" Height="400" Width="380" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="0" Grid.Row="1" Text="Rectagle" Margin="5"/> <TextBlock Grid.Column="0" Grid.Row="2" Text="Ellipse" Margin="5"/> <TextBlock Grid.Column="1" Grid.Row="0" Text="Fill"
TextAlignment="Center" Margin="5"/>
<TextBlock Grid.Column="2" Grid.Row="0" Text="Uniform" TextAlignment="Center" Margin="5"/> <TextBlock Grid.Column="3" Grid.Row="0" Text="UniformToFill" TextAlignment="Center" Margin="5"/> <Rectangle Grid.Column="1" Grid.Row="1" Fill="LightGray" Stroke="Black" Stretch="Fill" Margin="5"/> <Rectangle Grid.Column="2" Grid.Row="1" Fill="LightGray" Stroke="Black" Stretch="Uniform" Margin="5"/> <Rectangle Grid.Column="3" Grid.Row="1" Fill="LightGray" Stroke="Black" Stretch="UniformToFill" Margin="5"/> <Ellipse Grid.Column="1" Grid.Row="2" Fill="LightGray" Stroke="Black" Stretch="Fill" Margin="5"/> <Ellipse Grid.Column="2" Grid.Row="2" Fill="LightGray" Stroke="Black" Stretch="Uniform" Margin="5"/> <Ellipse Grid.Column="3" Grid.Row="2" Fill="LightGray" Stroke="Black" Stretch="UniformToFill" Margin="5"/>
</Grid> <StackPanel> <TextBlock Text="Polyline:"/> <Polyline Stroke="Black" StrokeThickness="3" Points="0 70,60 10,110 60,160 10,210 70"/> <TextBlock Text="Closed polyline:" Margin="0 10 0 0"/> <Polyline Stroke="Black" StrokeThickness="3" Points="0 70,60 10,110 60,160 10,210 70, 0 70"/> <TextBlock Text="Sine curve: codebehind" Margin="0 10 0 0"/> <Polyline Name="polyline1" Stroke="Red" StrokeThickness="2"/> </StackPanel>
</StackPanel> <StackPanel Margin="5,0,0,0"> <TextBlock Text="Polygon:"/> <Polygon Stroke="Black" StrokeThickness="3" Fill="LightGray" Points="0 70,60 10,110 60,160 10,210 70"/> <TextBlock Text="Filled sine curve: codebehind" Margin="0 10 0 0"/> <Polygon Name="polygon1" Stroke="Red"
StrokeThickness="2" Fill="LightCoral"/>
<TextBlock Text="FileRule = EvenOdd:" Margin="0 0 0 5"/> <Polygon Stroke="Black" Fill="LightGray" FillRule="EvenOdd" Points="0 0,0 150,100 150,100 50, 50 50,50 100,150 100,150 0"/> <TextBlock Text="FileRule = NonZero:" Margin="0 10 0 5"/> <Polygon Stroke="Black" Fill="LightGray" FillRule="Nonzero" Points="0 0,0 150,100 150,100 100,50 100, 50 50,100 50,100 100,150 100,150 0"/>
</StackPanel>
</StackPanel>
</Grid> </Window>
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); for (int i = 0; i < 70; i++) { double x = i * Math.PI; double y = 40 + 30 * Math.Sin(x / 10); polyline1.Points.Add(new Point(x, y)); } for (int i = 0; i < 71; i++) { double x = i * Math.PI; double y = 40 + 30 * Math.Sin(x / 10); polygon1.Points.Add(new Point(x, y)); } } }
reference : Practical WPF Graphics Programming
'.NET > WPF 2D' 카테고리의 다른 글
WPF 2D Scale Transforms (0) | 2013.06.28 |
---|---|
WPF 2D Object Matrix Transforms (0) | 2013.06.28 |
WPF 2D Creating Perpendicular Lines (0) | 2013.06.27 |
WPF 2D Transformations Matrix Transforms (0) | 2013.06.27 |
WPF 2D 차트에 대한 사용자 정의 좌표 (0) | 2013.06.18 |
WPF 2D RenderTransform ScaleTransform Slider 바인딩 Canvas.ClipToBounds (0) | 2013.06.18 |
WPF 2D 그리기 Canvas, Line, Canvas.RenderTransform, ScaleTransform, TranslateTransform (0) | 2013.06.18 |
WPF 기초 이벤트 트리거 에니메이션 주기 샘플 글크기 변경 AutoReverse (0) | 2013.06.17 |