2013-02-01 89 views

回答

10

是關於winforms或wpf的這個問題嗎?

如果它是關於WPF:

的動畫開機畫面是不是比顯示,而你的「主窗口」正在加載WPF窗口多。按照wischi的說明,您可以使用Expression Blend設計此飛濺窗口。

你也可以看看這個code project

對於建立某種加載動畫的:A Simple WPF Loading Animation

只需創建一個窗口,在XAML中定義的動畫,並顯示它,而你的應用程序是加載 - >動畫閃屏。

在的WinForms:

您可能需要重寫窗體的paint方法來創建一個動畫。但它仍然顯示另一個窗口,其中包含一個動畫,而另一個窗口正在加載。

+0

你如何處理繁忙的UI線程?在我的情況下,動畫運行不順暢。並非所有東西都可以轉移到後臺線程。 – sam

+0

回答我自己的問題。像這裏在另一個線程啓動Splash窗口http://stackoverflow.com/questions/1111369/how-do-i-create-and-show-wpf-windows-on-separate-threads#1111485 – sam

1

的啓動畫面的詳細指南是在這裏: eExample splashscreen

Another example

雖然基礎是:

1)創建一個啓動畫面,顯示它,關閉/處置它

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

2)在單獨的線程/背景工作器上運行splashscreen

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

我知道如何創建啓動畫面宏。事實上,我創造了很多。我的問題是如何創建一個像Office 2010一樣的動畫。不管怎麼說,還是要謝謝你。 –

+0

@SalehOmar怎麼樣一個GIF裏面的圖片框?如果你可以創建你自己的gif,它應該可以工作。 –

+0

我曾想過這件事,但似乎並不是這樣。如果你辦公室辦公,你會感覺到它是動態的。 –

2

我建議使用WPF爲現代應用程序設計和你的splashscreen問題。
Expression Blend是創建動畫和xaml設計的好工具。但是,你也可以通過編寫簡單的XAML以及

Expression Blend的教程
Animation Using Expression Blend: How to create an animation
Animation Using Expression Blend: How to start animations on events

MSDN信息
Animation Overview

使用的WinForms它會設計動畫多莫桑比克ompicated。整個GUI由CPU渲染(不支持GPU),但是您可以創建自定義用戶控件並覆蓋Paint事件並使用GDI進行繪製,但使用wpf會更加複雜。

+0

你沒有提到任何關於這是如何與啓動畫面相關的以及如何在啓動畫面上使用動畫! –

+1

啓動畫面只是一個窗口,在加載期間沒有邊框,以娛樂正在等待的用戶。而已。如果您可能會如此善良,並指定您的問題,我們會更容易幫助。 ;-) – wischi

+0

我在問如何。你談到了很棒的動畫。但是我如何將這個動畫應用到啓動畫面?這可能很簡單!但是一個小例子會很好。 –

2

,如果你想使一個動畫動態閃屏,如Office 2010,我建議你使用WPF 從來沒有想過的WinForms進行動態動畫的代碼!

,但如果你有決心使用的WinForms,你必須是棘手的,並使用這個招數之一:

•把一個Flash ActiveX對象,並與Flash動畫,然後將它們鏈接在一起

•如果你有好的WPF Silverlight的你可以讓你的動畫與Silverlight和查看它在WebBrowser控件,你也可以使用Flash或HTML5

1

在Winforms中,最簡單的方法是在splashscreen上使用帶有Gif動畫的PictureBox。

這種方式可以讓你花更多的時間在你的動畫上,而不是你的代碼。

0

在WPF中,只需右鍵單擊項目>添加新項目>啓動畫面即可。 This

是一個簡單的例子來解釋它。