【问题标题】:Simulate ajax loader in winform app在 winform 应用程序中模拟 ajax 加载器
【发布时间】:2009-01-31 18:27:47
【问题描述】:

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

编辑~有人吗?

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

【问题讨论】:

    标签: .net winforms animation swfloader


    【解决方案1】:

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

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

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

    3) 对这种形式使用 WPF,这将使您具有更大的灵活性。那是一个全新的框架……只是为了一种形式?

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 其实WinForms PictureBox可以完美处理GIF动画。
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-23
        相关资源
        最近更新 更多