gpt4 book ai didi

c# - 高效使用OnPaint

转载 作者:行者123 更新时间:2023-11-30 19:21:58 25 4
gpt4 key购买 nike

我在 Visual Studio .Net 中使用 C# 进行编程。

我正在创建自己的控件,它根据从模数转换器 (ADC) 获得的值绘制波形。我获取传入点并将它们转换为 X 和 Y 点,以便在我的控件中正确绘制图形。

我的 OnPaint 方法中有一个循环,它遍历所有点并在当前点和下一个点之间调用 DrawLine 方法。

但是,这是非常低效的,因为其中一些图表有 8192 个点,而系统实际上有 9 个我想同时显示的 ADC。每次重绘页面时,所有图形都需要几乎一秒钟的时间来重绘(尤其是在调试期间)。

除此之外,我还提供了一些功能,允许您放大和平移波浪以获得更好的 View (就像谷歌地图一样)并且所有 9 个波浪一起放大和平移。

所有这些功能都非常“不稳定”,因为我在 mousewheel 和 mousemove 上调用 invalidate。基本上,一切正常,但没有我想要的那么顺利。

我想知道是否有一种方法可以从数据中创建一个预绘制的对象,然后在绘图区域中绘制一个放大和平移的图片版本。

即使只是为我指明正确的方向,我们也将不胜感激。

最佳答案

创建一个 Bitmap 对象,并绘制它。

在您的 Paint 处理程序中,只需将位图 blit 到屏幕。

这将使您能够将更改比例与重新呈现数据分离开来。

关于c# - 高效使用OnPaint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1924345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com