C# 窗口形式的漂亮图形

2024-05-03

我需要使用 C# 在 Windows 窗体中创建一些简单的图形。简单地说,我指的是线条、圆圈等。但是,当我画画时,例如实心圆,边缘不平滑(正如使用方形像素绘制圆时所预期的那样),但是当在矢量程序中使用相同数量的像素绘制相同的圆时,它看起来很完美。对于这个例子,我一直在 Inkscape 中绘图。

也许矢量软件使用某种渲染函数来平滑颜色,但是这在 C# 中是否可能,而无需创建太多代码?这是代码的示例,它使用Graphics创建一个画布来绘图。

private void StatGraphicsPanel_Paint(object sender, PaintEventArgs e)
{
   Graphics canvas = e.Graphics;
   Brush brush = Brushes.Aqua;
   canvas.FillEllipse(brush, 0, 0, 10, 10);
}

Solution这段代码可以解决这个问题:

private void StatGraphicsPanel_Paint(object sender, PaintEventArgs e)
{
   Graphics canvas = e.Graphics;
   canvas.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
   Brush brush = Brushes.Aqua;
   canvas.FillEllipse(brush, 0, 0, 10, 10);
}

您想使用System.Drawing.Graphics.SmoothingMode http://msdn.microsoft.com/en-us/library/system.drawing.graphics.smoothingmode.aspx财产。在开始使用您的Graphics对象,执行以下操作:

canvas.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

这应该会给你一个漂亮的抗锯齿椭圆,而不是默认的锯齿状椭圆。

同样,如果您想在图像中绘制高质量的文本,请使用System.Drawing.Graphics.TextRenderingHint http://msdn.microsoft.com/en-us/library/system.drawing.graphics.textrenderinghint.aspx财产。


正如其他人在评论中提到的,您可能需要考虑使用 WPF。 WinForms 已经过时了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 窗口形式的漂亮图形 的相关文章

  • 编译时运算符

    有人可以列出 C 中可用的所有编译时运算符吗 C 中有两个运算符 无论操作数如何 它们的结果始终可以在编译时确定 它们是sizeof 1 and 2 当然 其他运算符的许多特殊用途可以在编译时解决 例如标准中列出的那些整数常量表达式 1 与
  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况

随机推荐

  • 如何在 makefile 中针对特定目标使用 include 指令

    我只想将 include 指令用于特定目标 当不需要目标时 我不想运行其他 makefile 因为这意味着 makefile 是不必要生成的 那么有没有一种方法可以有条件地使用 include 指令 该指令以目标为条件 或者以某种方式使 i
  • 在 portlet 中使用 json 对象响应 http 请求

    我是liferay portlet 开发的初学者 我正在开发一个portlet 它接收http get 请求 处理一些信息 然后必须返回一个json 对象 我的问题是我的 portlet 发送整个 html 页面而不仅仅是 json 对象
  • Visual Studio 2010 是否允许您编辑图标?

    当我在 Visual Studio 2010 专业版 中双击 ico 文件时 它会打开看起来像图标编辑器的内容 看起来应该很容易从左侧选择颜色并编辑像素 但我的鼠标是一个放大镜图标 左键单击 右键单击 他们所做的只是切换图标的缩放 我不知道
  • 返回元组的第一个元素

    假设我创建一个将两个整数相加的函数 def addInt a Int b Int Int Int val x a b x 2 我回来了 result 2 故意为了这个问题 现在我想创建一个仅返回 x 的变量 val result addIn
  • python中跨模块和线程的全局变量

    我有一个配置文件 config py 它包含一个全局变量 即在 config py 中我有 5 是默认值 config py globalVar 5 现在 在模块 run py 中 我设置全局变量 然后调用打印函数 run py impor
  • 将数据从意图服务传递到活动

    我有一个广播接收器 正在调用intentservice 我想将intentservice中收到的数据发送到一个活动 String s extras getString Notice 我想将此收到的字符串发送到一个新活动 Override p
  • 比较中单引号与双引号的意义是什么? [复制]

    这个问题在这里已经有答案了 这会返回一个错误 return arg 0 arg 1 true false 错误 ISO C 禁止指针和整数之间的比较 然而 这并不 return arg 0 arg 1 true false 有什么区别 an
  • FlatBuffers:写入和读取二进制文件?

    我对 C 和 Google 中的文件流有基本了解平面缓冲区 http google github io flatbuffers Schema文件非常简单 也是创建一个缓冲区并读取 来自缓冲区指针 我不明白的是如何将多个缓冲区保存到一个二进制
  • Firebase持久化,清除Firebase缓存

    我的应用程序使用 Firebase 来同步和恢复数据 我用setValue withCompletionBlock 插入 更新和删除 Firebase 对象的方法 每当有 CoreData 保存时就会调用此方法 从而将我的所有本地更改同步到
  • 是否可以将 contentEditable 与 jQuery DatePicker 一起使用?

    我正在寻找一种将 contentEditable 与 jQuery DatePicker 一起使用的方法 我如何在可编辑表格上使用它 我在这里找到了一个答案 http www sencha com forum showthread php
  • VBA Excel 提示用户选择默认文件夹中的文件

    我想提示用户在默认文件夹中打开 Excel 文件 我不知道如何打开默认文件夹 Sub Program1 DefaultFolder C user dump FName Application GetOpenFilename If FName
  • Assembly.GetTypes() 返回类型的顺序是什么?

    如果我获得 AppDomain 中的类型列表 这些类型是否有固有的顺序 List
  • 在 ubuntu 18.04 仿生中安装 TDA 时出错

    我尝试在 R 中安装 TDA 但出现错误 make diag o 错误 1 错误 包 TDA 编译失败 删除 usr local lib R site library TDA i p 中的错误 我尝试 sudo yum install gm
  • 使用 C# 网页浏览器单击 Javascript 按钮

    我需要让一个程序在网络浏览器中为我点击一个 javascript 按钮 这有可能吗 我想用 C 来完成这个 按钮 INPUT id str class text style TEXT ALIGN center maxLength 4 siz
  • CSS Transition - 两个方向?

    这是一个粗略的示例 可以帮助展示我想要的内容 http jsfiddle net GVaNv http jsfiddle net GVaNv 我想知道是否有办法制作叠加层transition从左侧进入 然后从右侧离开 因此 在悬停时 叠加层
  • 多个Android IntentService可以同时运行吗?

    据我了解 一个IntentService一次只能处理一个 Intent 因为它共享一个工作线程来完成所有工作 但如果我有多个IntentService在我的应用程序中 它们可以并行运行 还是都共享单个工作线程 但是如果我的应用程序中有多个
  • 在 SQL 中将 CSV 字段拆分为不同的行

    我的一位同事在做COBOL程序时遇到了这个问题 最终在应用程序层面解决了它 我仍然很好奇是否可以使用 SQL 在数据访问级别上解决它 这在某种程度上与这另一个问题 https stackoverflow com questions 2903
  • 来自 Popover 的 UIActionSheet 和 iOS8 GM

    有人在尝试从弹出窗口显示 UIActionSheet 时收到此消息吗 您的应用程序呈现了 UIAlertController 样式的 UIAlertControllerStyleActionSheet 具有此样式的 UIAlertContr
  • 关闭 MediaStyle 通知

    Lollipop 中的新 Android MediaStyle 通知没有关闭按钮 看起来 Google Code 上已经存在一个错误 在错误解决之前 有谁知道解决此问题的好方法是什么 我们应该推迟切换到 MediaStyle 吗 或者使用其
  • C# 窗口形式的漂亮图形

    我需要使用 C 在 Windows 窗体中创建一些简单的图形 简单地说 我指的是线条 圆圈等 但是 当我画画时 例如实心圆 边缘不平滑 正如使用方形像素绘制圆时所预期的那样 但是当在矢量程序中使用相同数量的像素绘制相同的圆时 它看起来很完美