我有一個啓動畫面,我想淡入,而我的應用程序關閉並執行某些操作,然後一旦完成,如果一段時間已過,關閉啓動畫面和加載主屏幕。顯示啓動畫面導致問題後的延遲
我得到的問題是,雖然我正在循環檢查時間量是否已經過去,但它似乎並沒有處理我的故事板以淡入閃屏。
閱讀後,我想我應該開始在不同的線程啓動畫面?
繼承人的代碼:
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
MySplashScreen splash = new MySplashScreen();
splash.Show();
Stopwatch sw = new Stopwatch();
sw.Start();
while (sw.Elapsed.TotalSeconds < 10)
{
}
splash.Close();
MainWindow mw = new MainWindow();
mw.Show();
}
}
的問題是當我添加動畫。就像它沒有將任何處理器應用於淡入淡出效果一樣,因爲它滯留在while循環中。
<Window x:Class="Splash_Demo.MySplashScreen"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="550" Width="900" ResizeMode="NoResize" WindowStartupLocation="CenterScreen" WindowStyle="None" ShowInTaskbar="False" Background="Transparent" AllowsTransparency="True" Opacity="0">
<Window.Triggers>
<EventTrigger RoutedEvent="Window.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="00:00:03" Storyboard.TargetProperty="Opacity" To="1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Window.Triggers>
<Canvas Height="498" Width="839">
<Canvas.Background>
<ImageBrush ImageSource="C:\Users\Ash\Downloads\XactSplash.png"/>
</Canvas.Background>
<Label Canvas.Left="291" FontFamily="Algerian" Canvas.Top="413" Name="Customer" Height="43" Width="185" HorizontalContentAlignment="Left" VerticalContentAlignment="Center"/>
<Image Canvas.Left="500" Canvas.Top="165" Height="164" Name="image1" Stretch="Fill" Width="211" Source="C:\Users\Ash\Downloads\Zerix.bmp" />
<Label Canvas.Left="191" Canvas.Top="376" FontSize="8" Content="Label" Height="19" Name="lblYear" Width="30" HorizontalContentAlignment="Left" VerticalContentAlignment="Center" />
</Canvas>
</Window>
感謝。你能夠發佈一些代碼示例嗎? – user589195
另外,我應該在我的問題中提出的一件事是,我可能想要做其他事情,例如在啓動屏幕打開時預加載dll's – user589195
如果可能,請從後臺線程執行此操作。 – zmbq