C# WPF窗口隐藏在主应用程序窗口后面。试图把它带到前面
我有一个第三部分的应用程序,它调用一个简单的WPF窗口,这个窗口有一个按钮,可以启动另一个WPF窗口C# WPF窗口隐藏在主应用程序窗口后面。试图把它带到前面,c#,wpf,C#,Wpf,我有一个第三部分的应用程序,它调用一个简单的WPF窗口,这个窗口有一个按钮,可以启动另一个WPF窗口 MainApp->Window1->Window2 代码设置方式应在启动Window2后关闭Window1,该窗口运行良好,但Window2位于MainApp窗口的“后面”,因此不可见。这就是我试图解决的问题 我尝试过的事情: Window.TopMost:这很好,但问题是当我按住Alt+Tab键时,窗口会一直位于所有窗口的顶部 Activate()\Focus():这些都不起作用 我还尝试发送
MainApp
->Window1
->Window2
代码设置方式应在启动Window2
后关闭Window1
,该窗口运行良好,但Window2
位于MainApp
窗口的“后面”,因此不可见。这就是我试图解决的问题
我尝试过的事情:
Window.TopMost
:这很好,但问题是当我按住Alt+Tab键时,窗口会一直位于所有窗口的顶部
Activate()
\Focus()
:这些都不起作用
我还尝试发送了一个Alt+Tab键笔划,似乎解决了这个问题,只是Window1
根本没有关闭
我甚至在不同的SO帖子中尝试了组合Activate()
\Focus()
\TopMost
,但似乎没有任何效果
代码:
业主财产应该做到这一点。请尝试以下代码:
public MainWindow()
{
InitializeComponent();
this.Loaded += MainWindow_Loaded;
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
Window1 win1 = new Window1(); //In your case, object of window2
win1.Owner = Application.Current.MainWindow;
win1.Show();
}
好的。。我就是这样解决这个问题的。问题是,当我启动主应用程序(第三方)然后加载窗口1时,它是模态的,因此停止了第三方加载(文档)。我从窗口1打开窗口2,然后关闭窗口1。由于它们在同一个线程中,Window1将控制权返回给主应用程序(它到达前端并继续加载),因此Window2被“隐藏”。
作为解决方案,我现在在另一个线程中启动Window 2,这似乎解决了问题。尝试Window.BringIntoView();我也试过了。。。不起作用。
ShowDialog()
方法是否调用了其中一个窗口?可能重复@Rekshino我也尝试过这些解决方案,但没有帮助您在window1关闭后显示window2,对吗?请在window2上显示您调用的代码。show()?
public MainWindow()
{
InitializeComponent();
this.Loaded += MainWindow_Loaded;
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
Window1 win1 = new Window1(); //In your case, object of window2
win1.Owner = Application.Current.MainWindow;
win1.Show();
}