3

如何Window在 10 秒后重定向到新的 WPF?我正在尝试Windows.Hide()用于当前WindowWindows.Show()另一个Window,但这不起作用。

4

2 回答 2

4

我为此使用了一个计时器:

public partial class MainWindow : Window
{            
    System.Windows.Threading.DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer();                            

    public MainWindow()
    {
        InitializeComponent();

        dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
        dispatcherTimer.Interval = new TimeSpan(0, 0, 5);
        dispatcherTimer.Start();                                
     }

     private void dispatcherTimer_Tick(object sender, EventArgs e)
     {
        Window1 w = new Window1();
        this.Hide();
        w.Show();

        dispatcherTimer.Stop();               
     }
}
于 2013-07-21T14:44:35.737 回答
2

您的 MainWindow 没有机会完成其构建。您可以将代码更改为此,或类似的东西......

    public MainWindow()
    {
        InitializeComponent();
        Loaded += MainWindowLoaded;
    }
    void MainWindowLoaded(object sender, RoutedEventArgs e)
    {
        Loaded -= MainWindowLoaded;
        Window1 window1 = new Window1();
        window1.Dispatcher.BeginInvoke((SendOrPostCallback) delegate
            {
                Thread.Sleep(3000);
                Hide();
                window1.Show();
            }, new object[] {null});
    }

这让第一个窗口完成它的构造。

于 2013-07-21T13:50:35.593 回答