在WPF中,是否可以将窗口从模态切换为非模态?也就是说,我使用
...ShowDialog();
打开窗口,但后来想要切换状态(比如使用...Show();
打开窗口)。private Window1 myWindow = new Window1();
private void MyButton_Click(object sender, RoutedEventArgs e)
{
// Using a timer to simulate something happening 5 seconds later that would cause dialog state to change
DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0, 0, 5);
dispatcherTimer.Start();
// The following line will block until you switch the dialog from modal to non-modal
myWindow.ShowDialog();
}
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
(sender as DispatcherTimer).Stop();
myWindow.Hide();
myWindow.Show();
}
private void SwitchToModelessButton_Click(object sender, RoutedEventArgs e)
{
this.Hide();
this.Show();
}
this.Hide()
和 this.Show()
来实现这个功能。 - BendEgprivate void Button_Click(object sender, RoutedEventArgs e) { TestWindow w = new TestWindow(); w.ShowDialog(); }
。有没有其他解决方案,而不需要隐藏和显示? - BendEg