【发布时间】:2015-06-15 01:56:05
【问题描述】:
我想使用e.Graphics 在我的表单上绘图。所以我画了一组矩形(用于我正在制作的游戏的棋子),现在我想在已经绘制的(和工作的)矩形上绘制棋子。棋子是透明的 png,保存在我的 Resources 文件夹中。我正常绘制它们没有问题,但是每当我想在图块上绘制它们时,只有图块是可见的——不管哪一行代码先行。如何在瓷砖顶部添加碎片,以便瓷砖在下方?
这是有问题的代码:
If Not alreadydrawn Then
Dim g As Graphics = Graphics.FromImage(screenbuffer)
Checked = False
For y = 1 To 8
For x = 1 To 8
If Checked Then g.FillRectangle(Brushes.LightGray, (x * 85) - 40, (y * 85) - 40, 85, 85)
If Not Checked Then g.FillRectangle(Brushes.Black, (x * 85) - 40, (y * 85) - 40, 85, 85)
Checked = Not Checked
Next
Checked = Not Checked
Next
e.Graphics.DrawImage(My.Resources.Bishop_White, New Rectangle(New Point(50, 50), New Size(64, 64)))
alreadydrawn = True
End If
e.Graphics.DrawImageUnscaledAndClipped(screenbuffer, New Rectangle(New Point(0, 0), New Size(795, 805)))
【问题讨论】:
-
嗯,你为什么不创建一个空的板资源,设置一个图片框并指向它,然后在顶部的透明控件中绘制你的作品.
-
@TonyHopkinson 董事会资源是什么意思?位图?
-
是的。这样你就不必一直重绘它。当您的棋子重新绘制时,收卷机将自行处理电路板。再说它不会变,为什么还要重新粉刷呢?
-
这就是我对
alreadydrawn = True所做的事情。我的问题是我不能同时看到两者。 This 是我尝试在另一个之上添加一个时发生的情况。 IE。我添加的部分(见Bishop_White)没有出现。 -
完全不是我的意思。在一个控件上绘制棋盘,在其上的另一个透明控件上绘制棋子。