10

在我想隐藏它的 WPF 窗口中,使用显示另一个窗口ShowDialog然后取消隐藏第一个窗口。


当我这样做时:

this.Hide();
var window2 = new Window2();
window2.ShowDialog();
this.Show();

第一个窗口以空白窗口的形式打开。

这种技术有什么问题?


当我这样做时:

var window2 = new Window2();
Visibility = Visibility.Collapsed;
window2.ShowDialog();
Visibility = Visibility.Visible;

第一个窗口退出然后应用程序。

这种技术也有什么问题?

4

6 回答 6

16

改为这样做:

this.Visibility = Visibility.Collapsed;    
...    
this.Visibility = Visibility.Visible;

另外,我在上面看到您的评论说这不起作用。但是,我开始了一个新的 WPF 项目,做了这个,构建并运行了它。有用。

请注意,没有错误。

在此处输入图像描述

于 2013-08-01T12:53:14.127 回答
3
 Window2 window2  = new Window2();
        this.Visibility = Visibility.Collapsed;
        window2.ShowDialog();
        this.Visibility = Visibility.Visible;
于 2013-08-01T12:58:26.147 回答
3
foreach (Window window in App.Current.Windows)

        {
            if (!window.IsActive)
            {
                window.Show();
            }
        }

对我来说很好

于 2015-10-25T02:47:50.717 回答
2

在我的情况下,下一个代码解决了:

new HiddenWindow
    {
       WindowStyle = WindowStyle.None,
       AllowsTransparency = true,
       Opacity = 0.0
     }.Show();
于 2015-03-09T15:24:25.357 回答
1

检查您的Application.Current.ShutdownMode. 如果设置为,则关闭您分配给的窗口Application.Current.MainWindow将导致应用程序关闭。在您的情况下,我会将其设置为. 您可以看到在您的 WPF 应用程序项目中设置的默认值。Application.Current.ShutdownModeOnMainWindowCloseOnExplicitShutdownapp.xaml

于 2016-10-11T07:05:37.167 回答
0

这段代码解决了我的问题

var window = new Window()
{
    WindowStyle = WindowStyle.Hidden,
    Height = 0;
    Width = 0; 
};
window.Show();
于 2022-02-28T15:23:55.333 回答