我有一个 mvvm 模式的 wpf 应用程序。在主视图中,我与其他视图的链接很少。但是在主视图中显示内容(即......链接)之前,我需要在主视图中显示一个图像......这意味着......一个欢迎图像将首先显示给用户......比如说2秒……然后显示实际内容。
有人可以帮我吗?
最简单的解决方案是将图像添加到您的项目并SplashScreen
在属性窗口中设置它的构建操作。这将导致在您的应用程序加载时显示图像。
更多详细信息:如何:将启动画面添加到 WPF 应用程序 (MSDN)。
好处:
缺点:
既然您说您希望图像显示在窗口中而不是“经典”初始屏幕中,让我添加第二个答案:在您的 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
属性设置动画(使用 a DoubleAnimation
)而不是Visibility
属性。