为什么在我的表单上设置背景图像会增加加载时间?
本文关键字:增加 加载 时间 图像 背景 我的 表单 设置 为什么 | 更新日期: 2023-09-27 18:07:09
当我在表单上设置图像作为BackgroundImage时,为什么表单需要很长时间才能加载,为什么我的应用程序通常会变慢?我有什么办法能战胜它吗?
您正在Windows上使用Visual Studio。
Visual Studio中普通windows窗体存在一个常见问题。当渲染高清晰度图像时(不一定是高清晰度图像,也可以是中等清晰度图像),应用程序将开始延迟。
我的应用程序也遇到过这个问题。
如果你的应用程序中有任何控件具有DoubleBuffered属性,那么你需要将其设置为true。
遗憾的是,这个解决方案并不能完全解决你的问题。
如果您正在制作一个包含大量图像的应用程序,我建议您使用WPF编写应用程序。幸运的是,WPF表单已经解决了这个问题,因此您不需要做任何其他事情来调整应用程序中图像的性能。
祝你好运!
不幸的是,如果您希望表单总是具有背景图像(特别是当它第一次显示时),那么如果图像很大,那么您无法做任何事情来抵消表单的加载时间
如果你喜欢表单被显示,然后图片被加载,你可以打开表单,然后在后台线程中加载图片,当你得到它时应用它:
Task<Image>.Factory.StartNew(() =>
{
return Bitmap.FromFile("image path here");
}).ContinueWith(t =>
{
this.BackgroundImage = t.Result;
}, TaskScheduler.FromCurrentSynchronizationContext());
让我们也不要忘记一个明显的解决方案,即调整图像的大小,这样它就不会花很长时间来加载,或者只是把角块放在一个没有边框的图片框中。
确保背景图像的选项为'拉伸'而不是'平铺'。根据我的经验,"平铺"布局需要额外的时间来加载。