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是 ...
随机推荐
- scala - [01] 概述
题记部分 001 || 介绍 (1)Spark -- 新一代内存级大数据计算框架,是大数据的重要内容 (2)Spark就是使用Scala编写的.因此为了更好的学习Spark,需要掌握Scala. (3 ...
- 【BUUCTF】BabySQli
[BUUCTF]BabySQli 题目来源 收录于:BUUCTF GXYCTF2019 题目描述 纯粹的SQL注入题 随意传入 name=abc&pw=a 返回 wrong user 尝试传入 ...
- [AI/GPT/LLOps/AI中台] Dify : 开源AI大模型应用开发平台(Apache 2.0)
概述:Dify Dify 是一款开源的大语言模型(LLM) 应用开发平台. 它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI ...
- SQLserver查询用逗号隔开的字段中是否包含另一个字段的值
CHARINDEX(','+用逗号隔开的字段+',',','+是否包含的字段+',')>0 大于0则存在
- mysql的自增id
为图方便,建表直接用了mysql的自增id 开发时进行插入操作时,发现插入失败id也自增了,导致id不连续 并且无论是删除还是插入,id是一直在增加 查询结果 MySQL自增ID机制: InnoDB存 ...
- [Qt 基础-02] QToolButton
QToolButton 文章目录 QToolButton 简介 1. arrowType 2. autoRaise 3. popupMode 4. toolButtonStyle 注意 信号的连接 样 ...
- 零经验选手,Compose 一天开发一款小游戏!
猛男翻卡牌 猛男启动 继上一个 Compose 练习项目 SimpleTodo 之后,又尝试用 Compose 来做了一个翻牌记忆游戏[猛男翻卡牌].这次是零经验写游戏项目,连原型都没有做设计,问了 ...
- Delphi Inputbox 输入时显示‘*’号
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- BUUCTF---BabyRSA(简单求解n)
题目 p+q : 0x1232fecb92adead91613e7d9ae5e36fe6bb765317d6ed38ad890b4073539a6231a6620584cea5730b5af83a3e ...
- Windows 鼠标右键失效
突然有一天...小邋遢他变了... 哦不是...鼠标右键/键盘菜单键莫名其妙失效了. 解决办法 运行 regedit 打开注册表编辑器 依次展开 HKEY_CURRENT_USER\Software\ ...