停止 LinearGradientBrush 重复

发布于 2024-08-04 09:31:13 字数 430 浏览 2 评论 0原文

我正在尝试找出如何停止 LinearGradientBrush 与我正在绘制的形状一起重复。例如,我创建了高度等于 50 的渐变,但接下来我绘制了高度等于 150 的矩形。在这种情况下,渐变将重复 3 次。但我只想绘制第一个渐变,而不为矩形的其余部分绘制任何内容。 似乎WPF中的GradientBrush支持SpreadMethod(http:// /msdn.microsoft.com/en-us/library/system.windows.media.gradientbrush.spreadmethod.aspx)用于此目的,但是 WinForms 也存在一些东西吗?

I'm trying to figure out how to stop LinearGradientBrush to repeat along with shape I'm drawing. So, for example I created gradient with height equal to 50, but next I draw rectangle with height equal to 150. In that case gradient will repeat itself three times. But I'd like to draw only first gradient and draw nothing for the rest of rectangle.
Seems GradientBrush in WPF supports SpreadMethod(http://msdn.microsoft.com/en-us/library/system.windows.media.gradientbrush.spreadmethod.aspx) for this purpose, but does something exists for WinForms as well?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谜兔 2024-08-11 09:31:13

Paul,我认为最简单的方法可能是以相同的方式创建填充,但仅使用 50 像素的矩形进行绘制。如果需要使用特定颜色填充其他 100 个像素,请先使用该颜色进行纯色填充。

或者,您可以尝试在渐变填充中设置混合(LinearGradientbrush::SetBlend),但这似乎需要付出很大的努力才能达到相同的效果。

Paul, I think the easiest way may be to create your fill the same way, but only draw using a rect of 50 pixels. If you need to fill the other 100 pixels with a specific color, then do a solid fill with that color first.

Alternatively, you can try to set a blend in your gradient fill (LinearGradientbrush::SetBlend), but that seems like a lot of effort to achieve the same effect.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文