web-dev-qa-db-ja.com

Office2010のようなアニメーションのスプラッシュ画面を作成する

C#を使用してOffice 2010のようなアニメーションのスプラッシュ画面を作成するにはどうすればよいですか?

12
Saleh Omar

この質問はwinformsまたはwpfに関するものですか?

Wpfに関する場合:

アニメーション化されたスプラッシュ画面は、「メインウィンドウ」の読み込み中に表示されるwpfウィンドウにすぎません。 wischiで説明されているように、ExpressionBlendを使用してこのスプラッシュウィンドウを設計できます。

これも見ることができます コードプロジェクト

ある種の読み込みアニメーションを作成する場合: 単純なWPF読み込みアニメーション

Xamlで定義されたアニメーションでウィンドウを作成し、アプリケーションの読み込み中に表示するだけです->アニメーションのスプラッシュ画面。

WinFormsの場合:

アニメーションを作成するには、フォームのPaintメソッドをオーバーライドする必要がある場合があります。ただし、別のウィンドウの読み込み中は、アニメーションを含む別のウィンドウが表示されたままです。

10
The-First-Tiger

office 2010のような動的なアニメーションのスプラッシュ画面を作成する場合は、[〜#〜] wpf [〜#〜]を使用し、WinFormsを考えないことをお勧めします。コードでダイナミックなアニメーションを作ろう!

ただし、WinFormsを使用することに決めた場合は、注意が必要であり、次のいずれかの方法を使用する必要があります。

•FlashActiveXオブジェクトを配置し、Flashを使用してアニメーションを作成し、それらをリンクします

[〜#〜] wpf [〜#〜]およびSilverlightが得意な場合は、Silverlightを使用してアニメーションを作成し、WebBrowserコントロールで表示できます。 FlashまたはHTML5も使用します

2
Eslam Hamouda

最新のアプリケーション設計とスプラッシュ画面の問題には、[〜#〜] wpf [〜#〜]を使用することをお勧めします。
Expression Blendは、アニメーションやxamlデザインを作成するための優れたツールです。ただし、プレーンなxamlを記述してアニメーションをデザインすることもできます。

Expression Blendチュートリアル
Expression Blendを使用したアニメーション:アニメーションの作成方法
Expression Blendを使用したアニメーション:イベントでアニメーションを開始する方法

MSDN情報
アニメーションの概要

Winformsを使用すると、非常に複雑になります。 GUI全体がCPUによってレンダリングされます(GPUサポートなし)が、カスタムユーザーコントロールを作成してPaintイベントを上書きし、描画にGDIを使用できますが、これはかなりの量になりますwpfを使用するよりも複雑です。

2
wischi

Winformsでは、最も簡単な方法は、スプラッシュスクリーン上でアニメーションGIFを使用してPictureBoxを使用することです。

このようにして、コードよりもアニメーションに多くの時間を費やすことができます。

1
Marco Guignard

スプラッシュスクリーンの詳細なガイドは次のとおりです。 eExampleスプラッシュスクリーン

別の例

基本は次のとおりですが:

1)スプラッシュスクリーンを作成して表示し、閉じて破棄します

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

2)別のスレッド/バックグラウンドワーカーでスプラッシュスクリーンを実行します

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

WPFでは、プロジェクトを右クリック>新しいアイテムを追加>スプラッシュ画面をクリックするだけで非常に簡単です。 これ

それを説明する簡単な例です。

0
user4340666