10秒后重定向到新的wpf窗口?

时间:2013-07-21 13:04:23

标签: c# wpf timer window wpf-controls

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

2 个答案:

答案 0 :(得分:3)

我用了一个计时器:

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();               
     }
}

答案 1 :(得分: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});
    }

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