如何在wpf应用程序启动时显示图像?
问题描述:
我有一个mvvm模式的wpf应用程序。在主要观点中,我没有其他观点的链接。 但在显示主视图中的内容(即...链接)之前,我需要在主视图中显示图像....这意味着...欢迎图像将首先显示给用户...说2秒...然后显示实际内容。如何在wpf应用程序启动时显示图像?
有人能帮我吗?
答
最简单的解决方案是将图像添加到项目中,并在属性窗口中将其构建操作设置为SplashScreen
。这会导致图像在应用程序加载时显示。
更多详情:How to: Add a Splash Screen to a WPF Application (MSDN)。
优点:
- 很容易的,需要零编码。
- 它在启动过程中很早就显示出来了,即在WPF DLL仍在加载时。
缺点:
- 你有超过多长时间闪屏的控制。如果您需要这样做,则可以直接使用SplashScreen Class。
答
既然你说你要显示在一个窗口,而不是一个“经典”闪屏图像,让我添加第二个答案:在您的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
属性。
是的,现在图像正在显示......但是它显示为一个图像而不是一个窗口......我的意思是......它看起来像第一个图像来..然后......我的窗口进来...但我需要在我的窗口内显示图像 – Relativity 2010-07-26 08:31:41