GDI+ .NET:宽度超过 202 像素的 LinearGradientBrush 会导致颜色环绕

2023-11-25

如果我用 a 绘制一个宽度超过 202 像素的矩形LinearGradientBrush,我在左侧看到一条彩色条纹:

enter image description here

给定一个代码202px宽矩形:

private void MainForm_Paint(object sender, PaintEventArgs e)
{
   Rectangle r = new Rectangle(50, 50, 202, 50);

   Color color1 = Color.FromArgb(unchecked((int)0xFF00024d));
   Color color2 = Color.FromArgb(unchecked((int)0xFFd6a20f));

   Brush b = new LinearGradientBrush(r, color1, color2, LinearGradientMode.Horizontal);
   e.Graphics.FillRectangle(b, r);
}

我得到一个正确绘制的矩形:

enter image description here

但是如果我将矩形更改为203像素宽:

Rectangle r = new Rectangle(50, 50, 203, 50);

该矩形的左侧有一个彩色边缘或环绕:

enter image description here


它也发生在垂直方向LinearGradientMode.Vertical:

202px:

enter image description here

203px:

enter image description here


在 FillRectangle() 调用之前添加此语句:

 e.Graphics.PixelOffsetMode = PixelOffsetMode.Half;

这避免了由于浮点舍入误差而导致的差一问题。

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

GDI+ .NET:宽度超过 202 像素的 LinearGradientBrush 会导致颜色环绕 的相关文章

随机推荐

  • iPhone 使用 GData 框架将视频上传到 YouTube 应用

    我想将视频从我的应用上传到 YouTube 我正在使用 YoutubeTest 示例来实现此目的 我已经为我的应用程序设置了开发人员密钥和客户端 ID 现在 当尝试使用示例源代码上传视频时 它显示一个错误 2012 03 19 10 51
  • nd_pdo_mysql 和 pdo_mysql 扩展之间有什么区别?

    由于某种原因pdo mysql我们的托管服务器上的 PHP 扩展无法运行使用 MySQL 视图的查询 并出现此错误消息 SQLSTATE HY000 一般错误 1615 准备好的语句需要重新准备 有一个讨论Bug 42041 当 MySQL
  • app.UseErrorHandler() 可以访问错误详细信息吗?

    在我的 MVC4 应用程序中 我覆盖了 global asax csApplication Error object sender EventArgs e 我可以在哪里提取exception statusCode and requested
  • gcloud docker Push 403 禁止

    我正在尝试将 docker 映像推送到 eu gcr io 但收到 403 Forbidden gcloud docker push eu gcr io
  • Schema.org 中网页结构的隐含性

    在阅读了数千篇帖子 问题 博客文章和意见之后 我仍然对如何使用微数据标记网页感到有点困惑 如果微数据的主要目的是帮助搜索引擎更好地理解网页的内容 并且隐式假设网页 那么在 body 元素中从 itemtype Webpage 开始 然后继续
  • 模板类特化的模板方法

    这是我的代码 template
  • 泛型的 JSON 序列化

    我有一堂课 看起来像这样 public class MyData IList
  • Google Chrome 扩展程序的 Paypal 按钮

    我正在尝试向我的 google chrome 扩展添加一个捐赠按钮 因为我喜欢钱 我遇到了麻烦 因为 Chrome 扩展程序尝试在 popup html 窗口中打开 paypal 创建的捐赠按钮 当我单击该按钮时 我的扩展程序会重新启动 并
  • 不带逗号的 NumberFormat 文本字段

    我有一个JFormattedTextField我想接受 5 位数字范围内的数字 以下代码可以正确运行 myNumberBox new JFormattedTextField NumberFormat getIntegerInstance 但
  • Python:以 Value 作为字典获取前 n 个键

    我有一本字典 比如 data sachin score 15000 out 100 Dhoni score 8000 out 80 Shewag score 12000 out 150 我想要两名得分最高的球员 所以我尝试过 key key
  • 将工具提示与 link_to 结合使用 (Ruby on Rails 3.2.3)

    我已经成功使用类似于以下的代码创建了文本工具提示 a href title something text on page a 不过 我想使用 link to 命令为菜单中定义的链接提供工具提示 我已经包含了我希望出现工具提示的声明 li i
  • Perl 脚本可以修改自身吗?

    我想让我的脚本在内部跟踪最后一次修订日期作为评论 这可能吗 在我看来 它需要获取日期 然后打开其脚本文件进行追加 写入数据并保存文件 谢谢 Everone 非常好的答案 根据 GreenMatt 留下的代码片段 我将其放在一起 usr bi
  • 为 UIView 及其所有子视图着色

    有什么方法可以给 UIView 着色吗 不是背景颜色 而是整个 UIView 及其所有子视图 例如 带有星星旋转动画的 UIView 即 UIView 形状不断变化 最终我创建了一个 UIView 类别 可以对 UIView 进行着色 没有
  • Laravel 本地化以及来自 Jetstream / Fortify 的路线

    我有一个新的 Laravel 项目要处理 我们希望以多种语言提供它 我从 JetStream 开始了这个项目 身份验证等路由由 JetStream Fortify 自动处理 然后我添加了https github com mcamara la
  • 如何构建和使用 Google TensorFlow C++ api

    我真的很渴望开始在 C 中使用 Google 新的 Tensorflow 库 网站和文档对于如何构建项目的 C API 确实不清楚 我不知道从哪里开始 有更多经验的人可以通过发现和分享使用 TensorFlow 的 C API 的指南来提供
  • HoughCircles 无法检测到该图像上的圆圈

    我试图检测图像中包含圆点的圆圈 但不幸的是我无法这样做 我正在使用 opencv 霍夫变换 但找不到使其工作的参数 src imread encoded jpg 1 Convert it to gray cvtColor src src g
  • Wget:如果文件已存在,则跳过下载?

    答复如果 wget 中存在文件 则跳过下载 说使用 nc or no clobber but nc不会阻止发送 HTTP 请求以及随后下载文件 如果文件已被完全检索 则下载文件后它不会执行任何操作 如果文件已经存在 是否有办法阻止发出 HT
  • 如何获取 SSAS(或任何其他报告)中两个 TFS 工作项状态之间的时间?

    TFS 的报告中是否有一种方法可以获取工作项在状态之间转换所需的时间 查看中的数据Tfs Warehouse数据库我可以看到有一个工作项的每个修订的记录 并且使用 TSQL 我可以编写一个查询来获取ChangedDate每个状态的变化并区分
  • AngularJS 模块依赖关系 - 澄清?

    我一直在研究 AngularJs 网站上的教程示例 this one The 主要 html 很空 除了ng view and ng app phonecatApp The app js文件包括 var phonecatApp angula
  • GDI+ .NET:宽度超过 202 像素的 LinearGradientBrush 会导致颜色环绕

    如果我用 a 绘制一个宽度超过 202 像素的矩形LinearGradientBrush 我在左侧看到一条彩色条纹 给定一个代码202px宽矩形 private void MainForm Paint object sender Paint