当前位置: 首页> 财经> 创投人物 > 中国十大网站公司排名_东莞外贸网络营销_2024最火的十大新闻有哪些_广州优化营商环境条例

中国十大网站公司排名_东莞外贸网络营销_2024最火的十大新闻有哪些_广州优化营商环境条例

时间:2025/7/11 17:27:45来源:https://blog.csdn.net/u010975589/article/details/142417453 浏览次数:0次
中国十大网站公司排名_东莞外贸网络营销_2024最火的十大新闻有哪些_广州优化营商环境条例

一、目的:分享一个wpf中级控件,鼠标放上展开其他控件的效果

        DrawingContext 和 GDI+ 的 Graphics 类都是用于绘图的技术,但它们属于不同的图形库和框架,适用于不同的场景。让我们详细比较一下这两者。

二、对比


DrawingContext


        DrawingContext 是 WPF(Windows Presentation Foundation)中的一个类,用于创建和渲染矢量图形。它是 DrawingVisual 类的一部分,通常用于高效的图形绘制。


优点


1.    硬件加速:WPF 使用 DirectX 进行渲染,能够利用 GPU 进行硬件加速,提供更高的性能。
2.    矢量图形:支持矢量图形,能够在不同分辨率下保持高质量。
3.    集成性:与 WPF 的其他功能(如数据绑定、样式和动画)无缝集成。
4.    高效:DrawingContext 是轻量级的,适合用于需要高效绘制的大量图形对象。


示例代码
以下是一个使用 DrawingContext 绘制简单图形的示例:

        DrawingVisual drawingVisual = new DrawingVisual();using (DrawingContext drawingContext = drawingVisual.RenderOpen()){drawingContext.DrawRectangle(Brushes.Blue, null, new Rect(50, 50, 100, 100));drawingContext.DrawText(new FormattedText("Hello, WPF!",System.Globalization.CultureInfo.InvariantCulture,FlowDirection.LeftToRight,new Typeface("Verdana"),32,Brushes.White),new Point(60, 60));}RenderTargetBitmap bmp = new RenderTargetBitmap(200, 200, 96, 96, PixelFormats.Pbgra32);bmp.Render(drawingVisual);// Save the bitmap to a filePngBitmapEncoder encoder = new PngBitmapEncoder();encoder.Frames.Add(BitmapFrame.Create(bmp));using (var stream = new System.IO.FileStream("output.png", System.IO.FileMode.Create)){encoder.Save(stream);}

GDI+ (System.Drawing)


        GDI+ 是 .NET Framework 中的图形库,主要用于 Windows Forms 应用程序。它提供了丰富的绘图功能,适用于位图图形的创建和操作。


优点


1.    广泛支持:GDI+ 在 Windows 平台上有广泛的支持,适用于各种类型的应用程序。
2.    丰富的功能:提供了丰富的绘图功能,包括绘制图形、文本、图像等。
3.    易于使用:API 设计简单易用,适合快速开发。


示例代码
以下是一个使用 GDI+ 绘制简单图形的示例: 

        Bitmap bitmap = new Bitmap(200, 200);using (Graphics g = Graphics.FromImage(bitmap)){g.Clear(Color.White);g.FillRectangle(Brushes.Blue, 50, 50, 100, 100);g.DrawString("Hello, GDI+", new Font("Verdana", 16), Brushes.White, new PointF(60, 60));}// Save the bitmap to a filebitmap.Save("output.png", System.Drawing.Imaging.ImageFormat.Png);

对比总结


•    性能:DrawingContext 使用硬件加速,性能通常优于 GDI+,特别是在需要高效绘制大量图形对象的场景。


•    图形类型:DrawingContext 适合矢量图形,GDI+ 适合位图图形。


•    集成性:DrawingContext 与 WPF 集成更好,支持数据绑定、动画等功能;GDI+ 更适合 Windows Forms 应用。


•    平台支持:GDI+ 在 Windows 平台上有更广泛的支持,而 DrawingContext 主要用于 WPF 应用。


选择建议


•    WPF 应用:如果你在开发 WPF 应用并需要高效的矢量图形绘制,DrawingContext 是更好的选择。
•    Windows Forms 应用:如果你在开发 Windows Forms 应用并需要操作位图图形,GDI+ 更适合。 

需要了解的知识点 

DrawingContext Class (System.Windows.Media) | Microsoft Learn

DrawingVisual Class (System.Windows.Media) | Microsoft Learn 

Graphics 类 (System.Drawing) | 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

源码地址

GitHub - HeBianGu/WPF-ControlDemo: 示例

GitHub - HeBianGu/WPF-ControlBase: Wpf封装的自定义控件资源库

GitHub - HeBianGu/WPF-Control: WPF轻量控件和皮肤库

了解更多

适用于 .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个人主页-哔哩哔哩视频

关键字:中国十大网站公司排名_东莞外贸网络营销_2024最火的十大新闻有哪些_广州优化营商环境条例

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: