我的方法的问题是图像,文本或线条绘制,在调整表单大小时可能会滞后0.2秒。因此,如果您需要右下角的图像,调整大小后需要0.2秒才能到位。此外,如果你进行大量调整,它会开始下降到1-2FPS,而表格会在大屏幕上扩展。示例代码如下所示(VB.NET):
Public Class Form1
Protected Overrides Sub OnPaint(e As System.Windows.Forms.PaintEventArgs)
MyBase.OnPaint(e)
Dim icon As Icon = SystemIcons.Exclamation
Dim imageWidth As Integer = icon.Width
Dim imageHeight As Integer = icon.Height
e.Graphics.DrawIcon(icon, Me.ClientRectangle.Right - imageWidth,
Me.ClientRectangle.Bottom - imageHeight)
End Sub
Private Sub Form1_Resize(sender As Object, e As System.EventArgs) Handles Me.Resize
Me.Invalidate()
End Sub
End Class
有什么方法可以让它更顺畅吗?
答案 0 :(得分:2)
Windows窗体提供style setting来缓冲屏幕。这为你做了很多设置。
此外,双缓冲无需清除屏幕,因此覆盖OnPaintBackground
并返回而不调用基类将阻止大量无法看到的工作。
答案 1 :(得分:1)
调整窗口大小始终会涉及在新位置重新绘制图像。但是,您可以尝试一些可能会或可能不会使重绘更有效的事情。