当前位置: 首页 > news >正文

笔记:简介Drawing是什么,都有哪些,如何使用

一、目的:Drawing简介

        在 WPF 中,Drawing 是一个抽象基类,用于表示可绘制的对象。Drawing 类及其派生类提供了一种轻量级的方式来描述图形、图像和视频等内容。Drawing 对象通常用于不需要用户交互的静态内容,例如背景图像、图标和装饰性图形。

二、Drawing都有哪些


1.    GeometryDrawing:


•    用于绘制几何图形(例如矩形、圆形、多边形等)。
•    可以设置填充和边框。


2.    ImageDrawing:


•    用于绘制图像。
•    可以指定图像的源和绘制区域。


3.    VideoDrawing:


•    用于绘制视频。
•    可以指定视频的源和绘制区域。


4.    GlyphRunDrawing:


•    用于绘制文本。
•    可以指定字体、大小、颜色等。


5.    DrawingGroup:


•    用于组合多个 Drawing 对象。
•    可以应用变换、裁剪和不透明度等效果。

三、如何使用Drawing

1、创建DrawingImage,应用到ImageSource中

        DrawingImage 是 WPF 中的一个类,它允许您将 Drawing 对象转换为图像。通过使用 DrawingImage,您可以将复杂的图形、图像和文本组合在一起,并将其作为图像资源使用。

            // 创建一个 DrawingGroupDrawingGroup drawingGroup = new DrawingGroup();// 创建一个矩形GeometryDrawing rectangleDrawing = new GeometryDrawing();rectangleDrawing.Geometry = new RectangleGeometry(new Rect(0, 0, 50, 50));rectangleDrawing.Brush = Brushes.Blue;rectangleDrawing.Pen = new Pen(Brushes.Black, 1);// 将图形添加到 DrawingGroupdrawingGroup.Children.Add(rectangleDrawing);// 创建一个 DrawingImage 并将 DrawingGroup 作为其 DrawingDrawingImage drawingImage = new DrawingImage(drawingGroup);// 创建一个 Image 控件并应用 DrawingImageImage imageControl = new Image();imageControl.Source = drawingImage;

2、创建DrawingBrush,应用到Background等Brush中

        DrawingBrush 是 WPF 中的一种画刷,它允许您使用 Drawing 对象来填充图形区域。通过使用 DrawingBrush,您可以将复杂的图形、图像和文本作为填充内容应用到控件或形状上。

            // 创建一个 DrawingGroupDrawingGroup drawingGroup = new DrawingGroup();// 创建一个矩形GeometryDrawing rectangleDrawing = new GeometryDrawing();rectangleDrawing.Geometry = new RectangleGeometry(new Rect(0, 0, 50, 50));rectangleDrawing.Brush = Brushes.Blue;rectangleDrawing.Pen = new Pen(Brushes.Black, 1);// 将图形添加到 DrawingGroupdrawingGroup.Children.Add(rectangleDrawing);// 创建一个 DrawingBrush 并将 DrawingGroup 作为其 DrawingDrawingBrush drawingBrush = new DrawingBrush(drawingGroup);// 创建一个矩形并应用 DrawingBrushRectangle rectangle = new Rectangle();rectangle.Fill = drawingBrush;

3、创建DrawingGroup,应用到Drawing中

        DrawingGroup 是 WPF 中的一个类,用于组合多个 Drawing 对象。通过使用 DrawingGroup,您可以将不同类型的 Drawing 对象(如 GeometryDrawing、ImageDrawing、GlyphRunDrawing 等)组合在一起,形成一个复杂的图形集合。然后,您可以将这个 DrawingGroup 用于绘制或作为其他绘制对象的源。

         // 创建一个 DrawingGroupDrawingGroup drawingGroup = new DrawingGroup();// 创建一个矩形GeometryDrawing rectangleDrawing = new GeometryDrawing();rectangleDrawing.Geometry = new RectangleGeometry(new Rect(0, 0, 50, 50));rectangleDrawing.Brush = Brushes.Blue;rectangleDrawing.Pen = new Pen(Brushes.Black, 1);// 将图形添加到 DrawingGroupdrawingGroup.Children.Add(rectangleDrawing);// 创建一个 DrawingBrush 并将 DrawingGroup 作为其 DrawingDrawingBrush drawingBrush = new DrawingBrush(drawingGroup);// 创建一个矩形并应用 DrawingBrushRectangle rectangle = new Rectangle();rectangle.Fill = drawingBrush;

4、创建DrawingVisual,应用到DrawingContext的DrawDrawing绘制中

            // 创建一个 DrawingVisual 对象DrawingVisual drawingVisual = new DrawingVisual();// 获取 DrawingContextusing (DrawingContext drawingContext = drawingVisual.RenderOpen()){// 创建一个矩形 DrawingGeometryDrawing rectangleDrawing = new GeometryDrawing();rectangleDrawing.Geometry = new RectangleGeometry(new Rect(0, 0, 100, 100));rectangleDrawing.Brush = Brushes.Blue;rectangleDrawing.Pen = new Pen(Brushes.Black, 1);// 使用 DrawDrawing 方法绘制 rectangleDrawingdrawingContext.DrawDrawing(rectangleDrawing);}

需要了解的知识点 

Drawing 类 (System.Windows.Media) | Microsoft Learn

ImageDrawing 类 (System.Windows.Media) | Microsoft Learn

GeometryDrawing 类 (System.Windows.Media) | Microsoft Learn

DrawingGroup 类 (System.Windows.Media) | Microsoft Learn

DrawingBrush 类 (System.Windows.Media) | Microsoft Learn

DrawingImage 类 (System.Windows.Media) | Microsoft Learn

System.Windows.Controls 命名空间 | Microsoft Learn

控件库 - WPF .NET Framework | Microsoft Learn

WPF 介绍 | Microsoft Learn

XAML概述 - WPF .NET | Microsoft Learn

Windows Presentation Foundation 简介 - WPF .NET | Microsoft Learn

使用 Visual Studio 创建新应用教程 - WPF .NET | Microsoft Learn

了解更多

适用于 .NET 8 的 WPF 的新增功能 - WPF .NET | Microsoft Learn

适用于 .NET 7 的 WPF 的新增功能 - WPF .NET | Microsoft Learn

System.Windows.Controls 命名空间 | Microsoft Learn

Reference Source

Sysinternals - Sysinternals | Microsoft Learn

Windows app development documentation - Windows apps | Microsoft Learn

欢迎使用 Expression Blend | Microsoft Learn

https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/?view=netdesktop-7.0&WT.mc_id=MVP_380318

https://github.com/HeBianGu

HeBianGu的个人空间-HeBianGu个人主页-哔哩哔哩视频


http://www.mrgr.cn/news/29477.html

相关文章:

  • 使用OpenCV(C++)通过鼠标点击操作获取图像的像素坐标和像素值
  • 搭建Python2和Python3虚拟环境
  • CSS3 用户界面
  • 编程初学者的第一个 Rust 系统
  • 【Xrdp联机Ubuntu20.04实用知识点补充】
  • c语言第九章,结构体
  • 开放式激光振镜运动控制器在Ubuntu+Qt下CAD图形标刻
  • 极光参展2024年服贸会并荣获“年度出海领航企业”荣誉
  • AI解锁生命密码:AlphaFold绘制病毒“家谱”,揭秘进化奇缘
  • 按关键字搜索商品 API,实现商品数据透明化.
  • 为您的任意模型赋能——RAG
  • MySQL之复合查询与内外连接
  • 个人信息安全“硬核”守护:企业引领方向,个人贡献力量,共筑安全防火墙
  • 执着追求与匠心独运 朵拉朵尚2024欧洲溯源 深入德国巴斯夫
  • CodeMeter 8.20AxProtector 11.50版本更新
  • 【论文阅读】3D Diffuser Actor: Policy Diffusion with 3D Scene Representations
  • 如何学懂C++语言:C++从入门到精通的全面指南(完整C++学习笔记)
  • 足底筋膜炎贴什么膏药
  • RFID技术实现消防物资消防车无感化智能管理设计方案
  • 关于几种msvcr100.dll丢失的解决方法,详细介绍msvcr100.dll文件
  • 【BurpSuite】Cross-site scripting (XSS 学徒部分:1-9)
  • 智能码二维码在化妆品防伪中的应用
  • UE4_后期处理七—仿红外线成像效果
  • 钢铁焦化水泥超低排放实施方案
  • 【15. 三数之和 中等】
  • 【ARM】Trustzone和安全架构