System.Drawing.Point与System.Windows.Point的异同
在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的异同的更多相关文章
- C# Pen绘制虚线(System.Drawing.Pen与System.Windows.Media.Pen)
一.绘制虚线的方法 GDI绘制,使用的是System.Drawing.Pen Pen pen = new Pen(Color.Red, 1); pen.DashStyle = S ...
- 将System.Drawing.Bitmap转换为Direct2D.D2DBitmap
最近在尝试Direct2D编程,挺好玩的. 但是有时候还是会用到GDI+来生成图片,但D2D绘图需要用到自己的D2DBitmap类. 因此需要转换,查阅了下网上的资料,写了这么一个方法: using ...
- 转载(Asp.net Core 中试使用ZKWeb.System.Drawing)
完美 原文Link: https://www.yanning.wang/archives/644.html 记录下做备份. 很少用Linux服务器. 这下可给整的够呛, 特别是按照官网竟然还不行, 所 ...
- .Net Core上用于代替System.Drawing的类库
目前.Net Core上没有System.Drawing这个类库,想要在.Net Core上处理图片得另辟蹊径. 微软给出了将来取代System.Drawing的方案,偏向于使用一个单独的服务端进行各 ...
- mono+jexus 验证码不显示:System.Drawing
System.ArgumentException The requested FontFamily could not be found [GDI+ status: FontFamilyNotFoun ...
- .net学习笔记----利用System.Drawing.Image类进行图片相关操作
C#中对图片的操作主要是通过System.Drawing.Image等类进行. 一.将图片转换为字节流 /// <summary> /// 图片处理帮助类 /// </summary ...
- 类库探源——System.Drawing.Bitmap
一.System.Drawing.Bitmap Bitmap 类: 封装GDI+ 位图,此位图由图形图像及其属性的像素数据组成.Bitmap 是用于处理由像素定义的图像的对象 命名空间: System ...
- 类库探源——System.Drawing
一.System.Drawing 命名空间简述 System.Drawing 命名空间提供访问 GDI+ 的基本功能,更高级的功能在 System.Drawing.Drawing2D,System.D ...
- System.Drawing.Image.Save(Savepath),保存为jpg格式,参数错误,文件0kb解决办法
问题场景:asp.net给图片添加文字水印保存为jpg格式时出现标题所描述错误(图片为.jpg格式): 简单验证:用本机的画图程序打开,然后保存为jpg格式会出现警告框"画图程序不能存储该文 ...
- 把System.Drawing.Image对象img,在页面的Image控件上显示出来
1.保存到本地,然后调用. //定义文件名 string iname = DateTime.Now.ToString("yyMMddhhmmss"); //保存到服务器,b是 ...
随机推荐
- WebKit 简介及工作流程
一.引言 WebKit 是一个被广泛应用于众多知名浏览器的开源网页渲染引擎.它在现代网页浏览体验中扮演着至关重要的角色. 二.WebKit 简介 WebKit 具有高效.灵活和跨平台的特点.它支持多种 ...
- spring - [01] 简介
Spring发展至今,已经形成了一个生态体系(Spring全家桶) 001 || Spring 定义 Spring是一款主流的Java EE轻量级开源框架,目的是用于简化Java企业级应用的开发难 ...
- ABC393F题解
大概评级:绿. 一看到这种题目,就知道肯定是数据结构题,我们首先用一个众所周知的二分来求出 \(pos\) 数组,\(pos_i\) 表示以 \(i\) 结尾的最长上升子序列的大小,然后将询问离线,弄 ...
- 错误修正记录: [Vivado 12-8300] Launch HLS failed! Please see vitis_hls.log for details.
起因 使用了Vivado Video Frame Buffer Read和Vivado Video Frame Buffer Write,按out of context模式综合失败.vivado版本2 ...
- FastAPI 核心机制:分页参数的实现与最佳实践
title: FastAPI 核心机制:分页参数的实现与最佳实践 date: 2025/3/13 updated: 2025/3/13 author: cmdragon excerpt: 在构建现代W ...
- goland Cannot resolve import 'google/api/annotations.proto'
前言 kratos 项目出现 import 标红,但是 $GOPATH/src/google/api/annotations.proto 已经存在了. 解决 路径:Goland > Settin ...
- chrome播放webRTC的H265视频方法
需求描述 最近有需求实现浏览器直接播放摄像头视频 鉴于Camera本身支持了rtsp流,本想web直接播放rtsp,但是还不行,搜了一下webRTC实现的效果和延迟会好一些.于是就使用了mediaMT ...
- ArrayList的常用成员方法
1.ArrayList常用成员方法 可以大致分为4种,增 删 改 查 1.增 1.public boolean add(E e) 将括号里的元素直接添加到集合中,添加的元素按照顺序依次排列. 其中,E ...
- xe10.3+paserver在Ubuntu下运行错误
xe.3的paserver在Ubuntu下执行呈现乱七八糟的错误提示. 原因:Ubuntu的版本和paserver编译的环境不一致. 注意:使用ARM64的版本.如ubuntu-18.04.2-des ...
- 2012R2双网卡路由的设定
目前T440服务器, os只能起步2012R2.intelWin联盟是实实在在的.在该os上,DB支持SQL2008. 你要安装SQL2005也可以.到网上查找攻略.那也是死去活来.还好.2008兼容 ...