2015-05-20 5 views
0

У меня есть заставка с индикатором выполнения, и как только она полностью загружена, главное окно должно открыться. Однако главное окно не открывается вообще, и всплывающее окно остается даже после полной загрузки индикатора выполнения. Что не так?Всплывающее окно не закрывается - WPF

В App.xaml, я поставил StartupUri = "SplashWindow.xaml"

Всплеск Окно Код:

using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Shapes; 
using System.Threading; 
using System.Windows.Media.Animation; 

namespace Project_1 
{ 
/// <summary> 
/// Interaction logic for SplashWindow.xaml 
/// </summary> 
public partial class SplashWindow : Window 
{ 
    public SplashWindow() 
    { 
     this.InitializeComponent(); 


     Duration duration = new Duration(System.TimeSpan.FromSeconds(10)); 
     DoubleAnimation doubleanimation = new  DoubleAnimation(splash_load.Maximum, duration); 
     splash_load.BeginAnimation(ProgressBar.ValueProperty, doubleanimation); 

     if (splash_load.Value==100) //If progress bar (Name = "splash_load") loads completely 
     { 

     // Close splash window 
     this.Close(); 

     // Open main window 
     var mw = new revised_mainwindow(); 
     mw.Show(); 

     } 

     // Insert code required on object creation below this point. 
    } 
} 
} 
+0

Вы не можете закрыть что-то, что еще не было показано, я не использовал WPF через некоторое время, но я уверен, что у него было событие onshown или подобное? – Sayse

+0

Ваша логика кажется неправильной, пожалуйста, воспользуйтесь этой ссылкой http://www.codeproject.com/Articles/38291/Implement-Splash-Screen-with-WPF –

+0

См. Http://stackoverflow.com/questions/22026209/wpf-splashscreen- с-progressbar для другого примера –

ответ

0

вопрос с вашей логике.

Когда в то время выполняется оператор if, splash_load.Value не 100, поскольку анимация запускается, но не завершена до этой точки. Некоторые, как вам придется проверять это состояние после завершения анимации. Используйте Completed событие Animation, чтобы проверить состояние и показать главное окно.

+0

Я подключил обработчик событий для события Completed double Animation , Это сработало. Спасибо! – Pallavi