■ DrawingBrush 클래스를 사용하는 방법을 보여준다.
▶ MainWindow.xaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<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="TestProject" FontFamily="나눔고딕코딩" FontSize="16"> <Rectangle Name="rectangle" Width="100" Height="100" /> </Window> |
▶ MainWindow.xaml.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
using System.Windows; using System.Windows.Media; namespace TestProject { /// <summary> /// 메인 윈도우 /// </summary> public partial class MainWindow : Window { //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor ////////////////////////////////////////////////////////////////////////////////////////// Public #region 생성자 - MainWindow() /// <summary> /// 생성자 /// </summary> public MainWindow() { InitializeComponent(); GeometryDrawing backgroundGeometryDrawing = new GeometryDrawing ( Brushes.White, null, new RectangleGeometry(new Rect(0, 0, 100, 100)) ); LinearGradientBrush linearGradientBrush = new LinearGradientBrush(); linearGradientBrush.GradientStops.Add(new GradientStop(Colors.Black, 0.0)); linearGradientBrush.GradientStops.Add(new GradientStop(Colors.Gray , 1.0)); GeometryGroup checkerGeometryGroup = new GeometryGroup(); checkerGeometryGroup.Children.Add(new RectangleGeometry(new Rect(0 , 0 , 50, 50))); checkerGeometryGroup.Children.Add(new RectangleGeometry(new Rect(50, 50, 50, 50))); GeometryDrawing checkerGeometryDrawing = new GeometryDrawing(linearGradientBrush, null, checkerGeometryGroup); DrawingGroup drawingGroup = new DrawingGroup(); drawingGroup.Children.Add(backgroundGeometryDrawing); drawingGroup.Children.Add(checkerGeometryDrawing); DrawingBrush drawingBrush = new DrawingBrush(); drawingBrush.Viewport = new Rect(0, 0, 0.25, 0.25); drawingBrush.TileMode = TileMode.Tile; drawingBrush.Drawing = drawingGroup; this.rectangle.Fill = drawingBrush; } #endregion } } |