Как отобразить изображение при запуске приложения wpf? - PullRequest
2 голосов
/ 26 июля 2010

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

Кто-нибудь может мне помочь, плз?

Ответы [ 3 ]

1 голос
/ 26 июля 2010

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

Подробнее: Как: добавить заставку в приложение WPF (MSDN) .

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

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

    Недостатки:

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

Поскольку вы говорите, что хотите, чтобы изображение отображалось в окне вместо "классического" заставки, позвольте мне добавить второй ответ: в вашем окне 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 в течение двух секунд, затем скроет его и покажет содержимое вашей myContent сетки.Если вы хотите получить плавный переход от заставки к содержимому, вы можете анимировать свойство Opacity (используя DoubleAnimation) вместо свойства Visibility.

...