3

我有一个 winform 应用程序,它根据用户选择呈现一些图表。我想模拟一个 ajax 样式加载器,这样当用户进行选择时,表单上会有一个叠加层,中间有一个动画。实现这一目标有哪些选择?我正在考虑在中心加载一个带有动画(gif)的面板,添加一些不透明度。

编辑~有人吗?

编辑〜是我找到的解决方案......终于!没有WPF废话。

4

3 回答 3

0

WinForms 在这类事情上相当薄弱——WPF 可以更好地处理这种情况。你可以做几件事:

1) 哈克!创建一个新的无模式、无边界表单,其中包含您的等待控件,并将其放在现有表单上。AFAIK 您不能将透明度分配给任何开箱即用的 WinForms 控件。确保当您现有的表单移动时,您的新表单也会移动。这是一个彻头彻尾的黑客攻击。

2) 从头开始​​创建您自己的 WinForms 控件并将其绘制在您现有的表单上。成本回报率高。

3) 这种形式使用 WPF,这会给你更多的灵活性。那是一个全新的框架……只是为了一种形式?

4) 暂时隐藏图表,让您的进度面板看起来非常漂亮。

于 2009-01-31T18:49:00.600 回答
0

WinForms 的 PictureBox 控件无法处理动画 gif。

您仍然可以使用 PictureBox,但可以自己翻帧。只需每 50 或 100 毫秒设置一次定时器,以保持图片框上的帧旋转。

要创建叠加层,我会尝试使用黑色面板来覆盖整个表单,并带有一些 alpha 值。但是,它不适用于低于 Windows XP 的任何设备。如果我没记错的话,Windows 2000 及更低版本无法处理 Winforms 中的透明度。

于 2009-02-03T05:33:03.387 回答
0

正如 Saif 已经说过的,这些是完全可定制的加载器:

http://www.codeproject.com/KB/cs/mrg_loadingcircle.aspx

于 2009-08-06T09:04:21.483 回答