【问题标题】:Creating an animated splash screen like office 2010创建像 Office 2010 这样的动画启动屏幕
【发布时间】:2013-02-01 11:24:57
【问题描述】:

如何使用 C# 创建类似于 Office 2010 中的动画启动屏幕?

【问题讨论】:

    标签: c# user-interface splash-screen


    【解决方案1】:

    这个问题是关于 winforms 还是 wpf 的?

    如果是关于 wpf:

    动画启动屏幕只不过是在加载“主窗口”时显示的 wpf 窗口。如 wischi 所述,您可以使用 Expression Blend 设计此启动窗口。

    你也可以看看这个code project

    用于创建某种加载动画:A Simple WPF Loading Animation

    只需使用在 xaml 中定义的动画创建一个窗口,并在您的应用程序加载时显示它 -> 动画启动屏幕。

    在 Winforms 中:

    您可能必须覆盖表单的绘制方法才能创建动画。但它仍然显示另一个窗口,其中包含一个动画,而另一个窗口正在加载。

    【讨论】:

    • 如何处理繁忙的 UI 线程?在我的情况下,动画运行不顺畅。并非所有内容都可以卸载到后台线程。
    • 回答我自己的问题。在另一个线程中启动启动窗口,例如stackoverflow.com/questions/1111369/…
    【解决方案2】:

    我建议将 WPF 用于现代应用程序设计和您的闪屏问题。
    Expression Blend 是用于创建动画和 xaml 设计的好工具。但是你也可以通过编写普通的 xaml 来设计动画

    表达式混合教程
    Animation Using Expression Blend: How to create an animation
    Animation Using Expression Blend: How to start animations on events

    MSDN 信息
    Animation Overview

    使用 Winforms 会复杂得多。整个 GUI 由 CPU 渲染(不支持 GPU),但您可以创建自定义用户控件并覆盖 Paint 事件并使用 GDI 进行绘图,但这会比使用 wpf 复杂得多。

    【讨论】:

    • 你没有说这与闪屏有什么关系以及如何将动画与闪屏一起使用!
    • 闪屏只是一个在加载过程中没有边框的窗口,用来娱乐等待的用户。而已。如果您可能会如此友善并指定您的问题,那么我们会更容易提供帮助。 ;-)
    • 我在问怎么做。你谈到了很棒的动画。但是我如何将此动画应用于启动画面?这可能很容易!但是一个小例子会很好。
    • "你没有说这与闪屏有什么关系,以及如何将动画与闪屏一起使用!"是他做的。这正是您需要知道的。你说你已经创建了启动画面,你说你已经使用了 WPF。 1 + 1 = 2。
    【解决方案3】:

    如果你想制作像 Office 2010 这样的动态动画闪屏,我建议你使用 WPF,不要考虑 WinForms 用代码制作动态动画!

    但如果你确定要使用 WinForms,你就必须很棘手,并使用以下技巧之一:

    • 放置一个 Flash ActiveX 对象,并使用 Flash 制作动画,然后将它们链接在一起

    • 如果您擅长 WPFSilverlight,您可以使用 Silverlight 制作动画并在 WebBrowser 控件中查看,您也可以使用 Flash 或 HTML5

    【讨论】:

      【解决方案4】:

      启动画面的详细指南在这里: eExample splashscreen

      Another example

      虽然基础是:

      1) 创建一个启动画面,显示它,关闭/处理它

          private void SplashForm()
          {
          SplashForm newSplashForm = new SplashForm();
          newSplashForm.ShowDialog();
          newSplashForm.Dispose();
          }
      

      2) 在单独的线程/backgroundworker 上运行启动画面

              Thread t1 = new Thread(new ThreadStart(SplashForm));
              t1.Start();
              Thread.Sleep(5000); // 5 seconds
              t1.Abort();
              Thread.Sleep(1000);
      

      【讨论】:

      • 我知道如何创建启动画面兄弟。事实上,我创造了很多。我的问题是如何创建像 Office 2010 那样的动画。无论如何,谢谢。
      • @SalehOmar 里面有 gif 的图片框怎么样?如果您可以创建自己的 gif,它应该可以工作。
      • 我想过这个,但似乎不是这样。如果你经营办公室,你会觉得它是动态的。
      • 办公室动画不是动态的,它只是一个非常好的动画图像。
      • @SalehOmar 如果您已经知道如何创建启动画面,那么可能更合适的问题是“如何在 C# WinForms 中制作动画?”
      【解决方案5】:

      在 Winforms 中,最简单的方法是在初始屏幕上使用带有动画 Gif 的 PictureBox。

      这种方式可以让您在动画上花费比代码更多的时间。

      【讨论】:

        【解决方案6】:

        在 WPF 中,只需右键单击项目 > 添加新项目 > 启动屏幕即可。 This

        是一个简单的例子来解释它。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-22
          • 2015-12-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多