【问题标题】:Painting change on Graphics not shown unless minimizing window除非最小化窗口,否则不会显示图形上的绘画更改
【发布时间】:2021-04-15 19:22:17
【问题描述】:

我创建了绘画应用程序,我可以在面板上绘画,但是,只有当我最小化窗口(表单)然后再次打开它时,才会显示更改(我绘画的内容)。我想马上看看我画了什么。

重现步骤:

Panel panel = new Panel();
//adding panel to view
Bitmap bitmap = new Bitmap(width, height);
Graphics g = Graphics.FromImage(bitmap);
panel.BackgroundImage = bitmap;
//painting something on g

【问题讨论】:

  • 控件不知道您更改了位图。添加panel.Invalidate();
  • @Hans 这是刷新它的正确方法吗?因为现在每次我快速在它上面画东西时它都会重新绘制,它有点闪烁。
  • 这是正确的方法。面板不是一个很好的选择,使用 PictureBox 来获得双缓冲。如果你需要一个面板来支持滚动,那么do this.

标签: winforms system.drawing


【解决方案1】:

解决办法是用PictureBox代替Panel,画在上面变得可见且更流畅。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-03
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    • 2023-03-24
    相关资源
    最近更新 更多