728x90
반응형
728x170
■ DrawingImage 클래스의 Drawing 속성을 사용해 드로잉 이미지를 만드는 방법을 보여준다.
▶ 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="TestProject"
FontFamily="나눔고딕코딩"
FontSize="16">
</Window>
▶ MainWindow.xaml.cs
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace TestProject
{
/// <summary>
/// 메인 윈도우
/// </summary>
public partial class MainWindow : Window
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainWindow()
/// <summary>
/// 생성자
/// </summary>
public MainWindow()
{
InitializeComponent();
#region 색상 1을 생성한다.
Color color1 = new Color();
color1.A = 255;
color1.R = 204;
color1.G = 204;
color1.B = 255;
#endregion
#region 그라디언트 중단 1을 생성한다.
GradientStop gradientStop1 = new GradientStop();
gradientStop1.Offset = 0.0;
gradientStop1.Color = color1;
#endregion
#region 그라디언트 중단 2를 생성한다.
GradientStop gradientStop2 = new GradientStop();
gradientStop2.Offset = 1.0;
gradientStop2.Color = Colors.Purple;
#endregion
#region 선형 그라디언트 브러시를 생성한다.
LinearGradientBrush linearGradientBrush = new LinearGradientBrush();
linearGradientBrush.GradientStops.Add(gradientStop1);
linearGradientBrush.GradientStops.Add(gradientStop2);
#endregion
#region 펜을 생성한다.
Pen pen = new Pen();
pen.Thickness = 10;
pen.LineJoin = PenLineJoin.Round;
pen.EndLineCap = PenLineCap.Round;
pen.Brush = linearGradientBrush;
#endregion
#region 사각형 기하를 생성한다.
RectangleGeometry rectangleGeometry = new RectangleGeometry();
rectangleGeometry.Rect = new Rect(0, 0, 50, 50);
#endregion
#region 타원 기하를 생성한다.
EllipseGeometry ellipseGeometry = new EllipseGeometry();
ellipseGeometry.Center = new Point(75, 75);
ellipseGeometry.RadiusX = 50;
ellipseGeometry.RadiusY = 50;
#endregion
#region 선 기하를 생성한다.
LineGeometry lineGeometry = new LineGeometry();
lineGeometry.StartPoint = new Point(75, 75);
lineGeometry.EndPoint = new Point(75, 0 );
#endregion
#region 기하 그룹을 생성한다.
GeometryGroup geometryGroup = new GeometryGroup();
geometryGroup.Children.Add(rectangleGeometry);
geometryGroup.Children.Add(ellipseGeometry );
geometryGroup.Children.Add(lineGeometry );
#endregion
#region 기하 드로잉을 생성한다.
GeometryDrawing geometryDrawing = new GeometryDrawing();
geometryDrawing.Pen = pen;
geometryDrawing.Geometry = geometryGroup;
#endregion
#region 드로잉 그룹을 생성한다.
DrawingGroup drawingGroup = new DrawingGroup();
drawingGroup.Children.Add(geometryDrawing);
#endregion
#region 드로잉 이미지를 생성한다.
DrawingImage drawingImage = new DrawingImage();
drawingImage.Drawing = drawingGroup;
#endregion
#region 이미지를 생성한다.
Image image = new Image();
image.Margin = new Thickness(10);
image.Stretch = Stretch.None;
image.Source = drawingImage;
#endregion
Content = image;
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] VisualBrush 엘리먼트 : Visual 속성에서 MediaElement 객체를 설정해 비디오로 영역 칠하기 (0) | 2023.03.22 |
---|---|
[C#/WPF] ImageBrush 클래스 : Viewport/TileMode 속성을 사용해 이미지 브러시 만들기 (0) | 2023.03.22 |
[C#/WPF] ImageBrush 클래스 : ImageSource 속성을 사용해 이미지 브러시 만들기 (0) | 2023.03.22 |
[C#/WPF] DrawingBrush 엘리먼트 : Viewport/TileMode 속성을 사용해 드로잉 브러시 만들기 (0) | 2023.03.22 |
[C#/WPF] DrawingBrush 엘리먼트 : Drawing 속성을 사용해 드로잉 브러시 만들기 (0) | 2023.03.22 |
[C#/WPF] ImageBrush 엘리먼트 : 배경 애니메이션 만들기 (0) | 2023.03.21 |
[C#/WPF] ControlTemplate 엘리먼트 : 투명 회전 글래스 처리 RadioButton 엘리먼트 정의하기 (0) | 2023.03.21 |
[C#/WPF] ImageBrush 엘리먼트 사용하기 (0) | 2023.03.21 |
[C#/WPF] ImageBrush 엘리먼트 : TileMode 속성을 사용해 타일 모드 설정하기 (0) | 2023.03.21 |
[C#/WPF] ImageBrush 엘리먼트 : ViewportUnits/Viewport/TileMode 속성을 사용해 타일 크기 설정하기 (0) | 2023.03.21 |
댓글을 달아 주세요