Как отобразить изображение в начале приложения WPF?
Вопрос
У меня есть приложение 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.