2

mvvm パターンの wpf アプリケーションがあります。メイン ビューには、他のビューへのリンクがほとんどありません。しかし、コンテンツ(つまり...リンク)をメインビューに表示する前に、メインビューに画像を表示する必要があります....つまり...ウェルカム画像が最初にユーザーに表示されます...言う2秒間...そして実際の内容を表示します。

誰でも私を助けてくれますか?

4

3 に答える 3

1

最も簡単な解決策は、プロジェクトにイメージを追加SplashScreenし、プロパティ ウィンドウでビルド アクションを設定することです。これにより、アプリケーションの読み込み中に画像が表示されます。

詳細:方法: スプラッシュ スクリーンを WPF アプリケーションに追加する (MSDN)

利点:

  • 簡単で、コーディングは不要です。
  • これは、起動プロセスの非常に早い段階、つまり WPF DLL がまだロードされている間に表示されます。

短所:

  • スプラッシュ スクリーンが表示される時間を制御することはできません。その必要がある場合は、SplashScreen クラスを直接使用できます。
于 2010-07-26T07:56:24.560 に答える
0

「クラシック」スプラッシュ画面ではなくウィンドウに画像を表示したいというので、2 番目の回答を追加させてください。WPF ウィンドウで、次のようにします。

<Window ...>
    <Window.Triggers>
        <EventTrigger RoutedEvent="Window.Loaded">
            <BeginStoryboard>
                <Storyboard>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="mySplash" Storyboard.TargetProperty="Visibility">
                        <DiscreteObjectKeyFrame KeyTime="0:0:2" Value="{x:Static Visibility.Hidden}" />
                    </ObjectAnimationUsingKeyFrames>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="myContent" Storyboard.TargetProperty="Visibility">
                        <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{x:Static Visibility.Hidden}" />
                        <DiscreteObjectKeyFrame KeyTime="0:0:2" Value="{x:Static Visibility.Visible}" />
                    </ObjectAnimationUsingKeyFrames>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Window.Triggers>
    <Grid>
        <Image x:Name="mySplash" ... />
        <Grid x:Name="myContent">
            ...
        </Grid>
    </Grid>
</Window>

これにより、Imageが 2 秒間表示された後、非表示になり、myContentグリッドの内容が表示されます。スプラッシュ画像からコンテンツへの素敵なフェードが必要な場合は、プロパティの代わりにOpacity( を使用して) プロパティをアニメーション化できます。DoubleAnimationVisibility

于 2010-07-26T09:56:01.597 に答える