2012-06-03 62 views
1

我试图创造一个VB.net形式应用在根据预约状况不同颜色的平面图视觉填写。着色图片中的利用覆盖或填充多边形

基本平面图是白色的,这个想法是在各个公寓颜色不同的颜色取决于一些变数。

我试图在彼此的顶部覆盖巴纽照片,但由于在Visual Studio中的透明度非真实性质,只要你覆盖超过2个PNG格式,这并不工作。

不与绘制多边形或者

这里更成功,是我想什么来实现,我会为一些帮助或建议表示感谢:

enter image description here

+0

可能重复的[Winforms中半透明PNG过半透明PNG(http://stackoverflow.com/questions/10455484/winforms-semi-transparent-png-over-semi-transparent-png ) –

回答

3

尝试在上面绘制

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 

结果::

与具有α值刷子图像的

enter image description here

+0

哇,谢谢你的快速反应。我会放弃这一点。绘图的另一个问题是提供了一个固定的位置,因此如果基础图像在扩展模式下扩展,多边形不会跟随。 你知道一种方法来确保一切都很好吗? 再次感谢您的快速响应! – user1433452

+0

@ user1433452这将是一个新问题。您可以使用'e.Graphics.TranslateTransform(x,y);'将多边形移动到新的位置。要调整大小或更复杂的缩放比例,请查看Matrix类。 – LarsTech

+0

当试图用picturebox解决问题时,是否有办法在picturebox顶部绘制多边形,因为它似乎最终落在它后面而不显示。谢谢。 – user1433452