停止 LinearGradientBrush 重复
我正在尝试找出如何停止 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
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.