加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

渐变填写VB.NET

发布时间:2020-12-17 00:09:06 所属栏目:大数据 来源:网络整理
导读:为什么世界上会出现以下简单代码?无论我使用的是LinearGradientMode的哪个值,此代码始终使用从左到右的渐变填充路径. graphPath是在别处创建的GraphicPath对象(基本上是圆角矩形): Dim gradBrush as New LinearGradientBrush(rect,color1,color2,LinearGra
为什么世界上会出现以下简单代码?无论我使用的是LinearGradientMode的哪个值,此代码始终使用从左到右的渐变填充路径. graphPath是在别处创建的GraphicPath对象(基本上是圆角矩形):
Dim gradBrush as New LinearGradientBrush(rect,color1,color2,LinearGradientMode.Vertical)
graphics.FillPath(gradBrush,graphPath)

UPDATE

对每个人来说都很奇怪,即便失败(水平绘制).只需创建一个新的VB.NET WinForms项目,并在Form1的Paint事件中粘贴以下代码:

Private Sub Form1_Paint(sender As System.Object,e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
    Dim gradBrush As New LinearGradientBrush(Me.ClientRectangle,Color.Red,Color.White,LinearGradientMode.BackwardDiagonal)
    e.Graphics.FillRectangle(gradBrush,Me.ClientRectangle)
  End Sub

所以我认为这与路径构造没有任何关系.

注意

如果有人能够确认这个问题在他们的机器上发生,我会很高兴,所以我们知道这是GDI而不是我的代码.仅供参考,我在具有.NET Fx 4.0 Client Profile和Full版本的WinXP VM和Win7机器(32位,Aero模式)上尝试过.

最后

首先,感谢所有帮助我发现它的伟大人物.问题是我正在编辑别人的代码,他们创建了一个名为LinearGradientMode的枚举(以支持他为此目的所需的None选项).现在,当他将此枚举的对象发送到LinearGradientBrush的构造函数时,C#编译器会认为最接近的匹配重载是采用“角度”参数(这是我的理论),并将我的渐变模式的值转换为等效的int (0,1,2,3和4是值)并调用该构造函数,在每种情况下产生(几乎)水平梯度.

再次感谢所有参与的人.

确保您的矩形已添加到GraphicsPath.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读