1

我正在尝试创建一个 VB.net 表单应用程序,以根据预订状态直观地填写具有不同颜色的平面图。

基本的平面图是白色的,想法是根据一些变量为各种公寓涂上不同的颜色。

我曾尝试将 .png 图片叠加在一起,但这不起作用,因为只要您叠加超过 2 个 PNG,Visual Studio 中的透明度就具有非真实性质。

绘制多边形也不太成功

这是我想要实现的目标,如果您提供一些帮助或建议,我将不胜感激:

在此处输入图像描述

4

1 回答 1

3

尝试使用具有 alpha 值的画笔在图像上绘制:

Protected Overrides Sub OnPaint(e As PaintEventArgs)
  e.Graphics.DrawImage(backImage, New Point(0, 0))

  Dim room As New List(Of Point)
  room.Add(New Point(45, 48))
  room.Add(New Point(165, 48))
  room.Add(New Point(190, 75))
  room.Add(New Point(190, 234))
  room.Add(New Point(150, 234))
  room.Add(New Point(150, 245))
  room.Add(New Point(45, 245))

  Using br As New SolidBrush(Color.FromArgb(100, Color.Blue))
    e.Graphics.FillPolygon(br, room.ToArray())
  End Using
  Using p As New Pen(Color.Blue, 3)
    e.Graphics.DrawPolygon(p, room.ToArray())
  End Using

  MyBase.OnPaint(e)
End Sub

结果:

在此处输入图像描述

于 2012-06-03T12:07:21.090 回答