बंद हो गया है, मैंने एक कस्टम wpf स्प्लैश-स्क्रीन कार्यान्वयन के साथ समस्या में भाग लिया है। समस्या यह है कि लोडिंग समाप्त होने के बाद और मेनविंडो को दिखाया जाना चाहिए, इसे कभी-कभी सामने नहीं लाया जाता है iee सक्रिय() कॉल विफल रहता है। यह शायद 1/10 बार होता है। एप्लिकेशन विंडोज 7/64 पर चलाया जाता है।स्प्लैश-स्क्रीन के बाद मुख्यविंडो को सामने लाएं
यहाँ implmentation (पूर्ण स्रोत sample)
public partial class App : Application
{
private Splash _splash;
private SplashVM _viewModel;
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
// starts splash in separate GUI thread
StartSplash();
// continues on loading main application in main gui thread
LoadMainAppFakeSteps(1000, 3);
// tells splash screen to start shutting down
Stop();
// Creates mainwindow for application
// The problem is that the mainwindow sometimes fails to activate,
// even when user has not touched mouse or keyboard (i.e has not given any other programs or components focus)
MainWindow = new Shell();
MainWindow.Show();
MainWindow.Activate();
}
private void StartSplash()
{
_viewModel = new SplashVM();
var thread = new Thread(SplashThread);
thread.SetApartmentState(ApartmentState.STA);
thread.IsBackground = true;
thread.Start(_viewModel);
}
private void SplashThread(object vm)
{
_splash = new Splash();
_splash.DataContext = vm;
_splash.Show();
System.Windows.Threading.Dispatcher.Run();
_splash = null;
_viewModel = null;
}
private void LoadMainAppFakeSteps(int stepDelayMs, int numSteps)
{
for (int i = 1; i <= numSteps; i++)
{
_viewModel.Text = i.ToString();
Thread.Sleep(stepDelayMs);
}
}
private void Stop()
{
if (_splash == null) throw new InvalidOperationException("Not showing splash screen");
_splash.Dispatcher.BeginInvokeShutdown(DispatcherPriority.Normal);
}
}
मैं इस की कोशिश की है:
MainWindow = new Shell();
MainWindow.Topmost = true;
MainWindow.Show();
MainWindow.Activate();
MainWindow.Topmost = false;
और यह काम करने लगता है, धन्यवाद आपके सभी सुझावों
इसे विंडोज एक्सपी पर 30 बार कोशिश की और मैंने कभी समस्या नहीं देखी। आपको इस समस्या का क्या ओएस है? –
मैं समस्या को पुन: उत्पन्न नहीं कर सकता। मैं विंडोज 7 का उपयोग कर रहा हूं। –
@Meleak Win7/64 – hkon