在C#中,System.Drawing.Point 和 System.Windows.Point 是两个不同的结构,分别属于不同的命名空间,用于表示二维平面中的点。尽管它们的功能相似,但在使用场景和实现细节上存在一些差异。

相同点:

表示二维点:两者都用于表示二维平面中的点,包含X和Y坐标。

不可变性:两者都是不可变的结构,一旦创建,其值无法更改。

常用操作:两者都支持基本的点操作,如比较、偏移等。

不同点:

命名空间:

System.Drawing.Point 属于 System.Drawing 命名空间,通常用于GDI+图形编程。

System.Windows.Point 属于 System.Windows 命名空间,通常用于WPF(Windows Presentation Foundation)应用程序。

数据类型:

System.Drawing.Point 的X和Y坐标是整数(int)类型。

System.Windows.Point 的X和Y坐标是双精度浮点数(double)类型。

使用场景:

System.Drawing.Point 主要用于Windows Forms应用程序中的图形绘制和图像处理。

System.Windows.Point 主要用于WPF应用程序中的布局、动画和图形渲染。

方法和属性:

System.Drawing.Point 提供了一些特定的方法,如 Offset 用于偏移点的位置。

System.Windows.Point 提供了更多的数学操作,如向量运算、点与点的加减等。

示例代码:

System.Drawing.Point
using System.Drawing; Point point = new Point(10, 20);
point.Offset(5, 5); // 偏移点
Console.WriteLine($"X: {point.X}, Y: {point.Y}");
System.Windows.Point
using System.Windows;

Point point = new Point(10.5, 20.5);
Point newPoint = point + new Vector(5, 5); // 使用向量偏移点
Console.WriteLine($"X: {newPoint.X}, Y: {newPoint.Y}");

总结:

System.Drawing.Point 更适合传统的Windows Forms应用程序,处理整数坐标。

System.Windows.Point 更适合WPF应用程序,处理浮点数坐标,并提供更多的数学操作。

根据你的应用程序类型和需求,选择合适的点结构。

System.Drawing.Point与System.Windows.Point的异同的更多相关文章

  1. C# Pen绘制虚线(System.Drawing.Pen与System.Windows.Media.Pen)

    一.绘制虚线的方法 GDI绘制,使用的是System.Drawing.Pen Pen pen = new Pen(Color.Red, 1);            pen.DashStyle = S ...

  2. 将System.Drawing.Bitmap转换为Direct2D.D2DBitmap

    最近在尝试Direct2D编程,挺好玩的. 但是有时候还是会用到GDI+来生成图片,但D2D绘图需要用到自己的D2DBitmap类. 因此需要转换,查阅了下网上的资料,写了这么一个方法: using ...

  3. 转载(Asp.net Core 中试使用ZKWeb.System.Drawing)

    完美 原文Link: https://www.yanning.wang/archives/644.html 记录下做备份. 很少用Linux服务器. 这下可给整的够呛, 特别是按照官网竟然还不行, 所 ...

  4. .Net Core上用于代替System.Drawing的类库

    目前.Net Core上没有System.Drawing这个类库,想要在.Net Core上处理图片得另辟蹊径. 微软给出了将来取代System.Drawing的方案,偏向于使用一个单独的服务端进行各 ...

  5. mono+jexus 验证码不显示:System.Drawing

    System.ArgumentException The requested FontFamily could not be found [GDI+ status: FontFamilyNotFoun ...

  6. .net学习笔记----利用System.Drawing.Image类进行图片相关操作

    C#中对图片的操作主要是通过System.Drawing.Image等类进行. 一.将图片转换为字节流 /// <summary> /// 图片处理帮助类 /// </summary ...

  7. 类库探源——System.Drawing.Bitmap

    一.System.Drawing.Bitmap Bitmap 类: 封装GDI+ 位图,此位图由图形图像及其属性的像素数据组成.Bitmap 是用于处理由像素定义的图像的对象 命名空间: System ...

  8. 类库探源——System.Drawing

    一.System.Drawing 命名空间简述 System.Drawing 命名空间提供访问 GDI+ 的基本功能,更高级的功能在 System.Drawing.Drawing2D,System.D ...

  9. System.Drawing.Image.Save(Savepath),保存为jpg格式,参数错误,文件0kb解决办法

    问题场景:asp.net给图片添加文字水印保存为jpg格式时出现标题所描述错误(图片为.jpg格式): 简单验证:用本机的画图程序打开,然后保存为jpg格式会出现警告框"画图程序不能存储该文 ...

  10. 把System.Drawing.Image对象img,在页面的Image控件上显示出来

    1.保存到本地,然后调用. //定义文件名    string iname = DateTime.Now.ToString("yyMMddhhmmss"); //保存到服务器,b是 ...

随机推荐

  1. SpringBoot 2.x 接入非标准SSE格式大模型流式响应实践 🚀

    近期DeepSeek等国产大模型热度持续攀升,其关注度甚至超过了OpenAI(被戏称为CloseAI).在SpringBoot3.x环境中,可以使用官方的Spring AI轻松接入,但对于仍在使用JD ...

  2. 目标检测 | Spatially Sparse Convolution

    Spatially Sparse Convolution 导言 为什么需要稀疏化? 在3D表示中,除了点云(Point Cloud)和网格模型(Mesh),我们常常还会使用到一种称为体素(Voxel) ...

  3. Python装饰器:套层壳我变得更强了!

    Python装饰器:套层壳我变得更强了 Python装饰器:套层壳我变得更强了 关于作用域和闭包可以聊点什么? 什么是作用域 什么是闭包 装饰器:套层壳我变得更强了 参考资料 昨天阅读了<Pyt ...

  4. AI与.NET技术实操系列(四):使用Semantic Kernel和DeepSeek构建AI应用

    引言 在人工智能技术飞速发展的今天,大型语言模型(Large Language Models, LLMs)已成为智能应用开发的核心驱动力.从智能客服到自动化内容生成,LLMs的应用正在深刻改变我们的工 ...

  5. 痞子衡嵌入式:了解主从系统中i.MXRT系列MCU从主处理器接收App数据包超时机制

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是主从系统中i.MXRT系列MCU从主处理器接收App数据包超时机制. 在痞子衡旧文 <RT四位数Boot模式> 里的 1.2 ...

  6. TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合

    \3c span id="mce_marker" data-mce-type="bookmark">\3c /span>\3c span id=&q ...

  7. go map fatal error: concurrent map iteration and map write 读写锁与深度拷贝的坑

    起因 从币安实时拉取交易对的数据,这里使用了 map,用于存放每个交易对的最新价格,由于 map 并不是并发安全的所以加了读写锁. 但系统有时候还是会发生 fatal error: concurren ...

  8. nginx配置2个不同端口的应用

    如何配置nginx,在同一台服务器上,部署2个不同端口的web应用? 1,利用Django框架搭建的web应用,默认端口是8000: 2,利用Flask框架搭建的web应用,默认端口是5000: 第一 ...

  9. C++ 常用转换API记录

    //wstring转string std::string wstring2string(IN std::wstring& wstr) { std::string result; //获取缓冲区 ...

  10. ATT&CK实战系列(三)红日靶场3

    本次打靶练习是一个黑盒测试.没有密码,我们的目标是拿到域控制器的权限,并找到其中的重要文件. 网络拓扑 网卡设置 centos为出网机,第一次运行,需重新获取桥接模式网卡ip. 需重启网络服务serv ...