我制作了一个由图片盒构成的纸牌游戏。可放入卡片的空白处是一个带有透明背景和3d边框的空白图片框。然后我有一张当前卡片,它也是一个由MouseMove事件移动的图片盒。
只要我将卡片拖到透明PictureBox上,就会有卡片留在卡片所在的地方,直到我停止鼠标并让图片刷新。当我将当前卡片的背景设置为透明时也是这种情况,尽管将卡片设置为图像(因此如果我将背景设置为绿色它就会消失,因此它并不重要)。
这有什么解决方法吗?我尝试过DoubleBuffered但没有成功。谢谢!
答案 0 :(得分:1)
从您的描述中不清楚您的代码是什么样的。但是,在修复此问题之后,请查看下一个问题:当控件重叠时,控件的透明效果在Windows窗体中不起作用。您将看到父母的背景,您将看不到移动卡片重叠的图片框内容。
这不是WPF的问题,它有一个非常不同的渲染模型。但只要您想坚持使用Windows窗体,就需要使用窗体的OnPaint()事件来完成此工作。绘制卡片表,然后是股票,然后绘制移动的卡片。当卡移动时,调用Invalidate()以强制重新绘制表单,现在将卡显示在新位置。
换句话说,不要修复当前的问题。重新设计你的程序。
答案 1 :(得分:0)
你可以打电话
Application.DoEvents();
在pictureBox.Move
事件中;所以所有的背景图片都会自己重绘。