我已经编写了Windows Forms应用程序,在上Panel使用进行自定义绘图Control.CreateGraphics()。这是我Form启动时的样子:
与抽奖的空白表格! 纽扣
自定义绘图是Click在“绘图!”事件处理程序的顶部面板上执行的。按钮。这是我的按钮单击处理程序:
private void drawButton_Click(object sender, EventArgs e)
{
using (Graphics g = drawPanel.CreateGraphics())
{
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
g.Clear(Color.White);
Size size = drawPanel.ClientSize;
Rectangle bounds = drawPanel.ClientRectangle;
bounds.Inflate(-10, -10);
g.FillEllipse(Brushes.LightGreen, bounds);
g.DrawEllipse(Pens.Black, bounds);
}
}
单击后drawButton,表单如下所示:
绿色填充椭圆形
成功!
但是当我拖动一个角来缩小表单时...
相同形式,缩小以部分隐藏椭圆
...并将其扩展回原始大小,
右侧和底部缺少图形的表格
我画的部分消失了!
当我将部分窗口拖到屏幕外时,也会发生这种情况。
形成部分屏幕外
...并将其拖回到屏幕上:
表格重新显示在屏幕上,但缺少一半的图形
如果我最小化窗口并还原它,则会删除整个图像:
像第一张图片一样的空白表格
是什么原因造成的?我如何才能使绘制的图形持久化?
注意:我已经创建了这个自我解答的问题,所以我有一个规范的Q / A可以将用户定向到,因为这是一种常见情况,如果您还不知道问题的原因,则很难进行搜索。
相关分类