2010-07-26 105 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屬性。