2012-06-03 107 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