From 8a3ab64a65da226636743be07c4bee63f50da25d Mon Sep 17 00:00:00 2001 From: patrick.xu <patrick.xu@broconcentric.com> Date: 星期六, 06 三月 2021 11:35:20 +0800 Subject: [PATCH] 1. 解决软件异常崩溃问题 --- src/Bro.UI.Model.Winform/UI/CanvasImage.cs | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-) diff --git a/src/Bro.UI.Model.Winform/UI/CanvasImage.cs b/src/Bro.UI.Model.Winform/UI/CanvasImage.cs index 978e513..582061d 100644 --- a/src/Bro.UI.Model.Winform/UI/CanvasImage.cs +++ b/src/Bro.UI.Model.Winform/UI/CanvasImage.cs @@ -67,8 +67,21 @@ #endregion #region 閲嶇粯 + volatile bool _isInRepaint = false; + object _isInRepaintLock = new object(); protected override void OnPaint(PaintEventArgs e) { + //if (_isInRepaint) + // return; + + //lock (_isInRepaintLock) + //{ + // if (_isInRepaint) + // return; + //} + + //_isInRepaint = true; + try { Rectangle rect = ClientRectangle; @@ -78,6 +91,9 @@ Graphics g = myBuffer.Graphics; g.SmoothingMode = SmoothingMode.HighSpeed; g.PixelOffsetMode = PixelOffsetMode.HighSpeed; + g.InterpolationMode = InterpolationMode.Low; + g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + g.CompositingQuality = CompositingQuality.HighSpeed; g.Clear(BackColor); g.MultiplyTransform(Matrix); @@ -173,6 +189,8 @@ catch (Exception) { } + + _isInRepaint = false; } private void halfTransparent() -- Gitblit v1.8.0