Как отобразить изображение в начале приложения WPF?

StackOverflow https://stackoverflow.com/questions/3333088

  •  29-09-2020
  •  | 
  •  

Вопрос

У меня есть приложение WPF в шаблоне MVVM.В главном представлении у меня мало ссылок на другие взгляды. Но перед отображением содержимого (то есть ... Ссылки) на главном представлении, мне нужно отобразить изображение в главном представлении .... это означает ... Приветственное изображение будет отображаться первым пользователю ...В течение 2 секунд ... а затем отобразить фактическое содержимое.

Может кто-нибудь поможет мне плз?

Это было полезно?

Решение

Самое простое решение было бы добавить изображение в свой проект и установить его настроить действие для SplashScreen в окне свойств.Это приведет к тому, что изображение будет показано, в то время как ваши нагрузки приложений.

Подробнее: Как: добавитьSplash Screen к приложению WPF (MSDN) .

Преимущества:

    .
  • Это легко и требует нулевого кодирования.
  • Это показано очень рано в процессе запуска, то есть, когда DLL WPF все еще загружаются.

Недостатки:

    .
  • Вы не контролируете, как длится отображается всплеск экрана.Если вам нужно сделать это, вы можете использовать Splashscreen Class напрямую.

Другие советы

Since you say that you want the image to be displayed in a window instead of a "classic" splash screen, let me add a second answer: In your WPF window, do something like this:

<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>

This will show your Image for two seconds, then hide it and show the contents of your myContent grid. If you want to have a nice fade from the splash image to the content, you can animate the Opacity property (using a DoubleAnimation) instead of the Visibility property.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top