2010-07-26 108 views
2

我有一个mvvm模式的wpf应用程序。在主要观点中,我没有其他观点的链接。 但在显示主视图中的内容(即...链接)之前,我需要在主视图中显示图像....这意味着...欢迎图像将首先显示给用户...说2秒...然后显示实际内容。如何在wpf应用程序启动时显示图像?

有人能帮我吗?

回答

1

最简单的解决方案是将图像添加到项目中,并在属性窗口中将其构建操作设置为SplashScreen。这会导致图像在应用程序加载时显示。

更多详情:How to: Add a Splash Screen to a WPF Application (MSDN)

优点:

  • 很容易的,需要零编码。
  • 它在启动过程中很早就显示出来了,即在WPF DLL仍在加载时。

缺点:

  • 你有超过多长时间闪屏的控制。如果您需要这样做,则可以直接使用SplashScreen Class
+0

是的,现在图像正在显示......但是它显示为一个图像而不是一个窗口......我的意思是......它看起来像第一个图像来..然后......我的窗口进来...但我需要在我的窗口内显示图像 – Relativity 2010-07-26 08:31:41

0

既然你说你要显示在一个窗口,而不是一个“经典”闪屏图像,让我添加第二个答案:在您的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属性。