我有一个主窗口,我想打开一个位于其上方的窗口。但似乎我想要的窗口在主窗口打开之前打开。 要解决这个问题,我需要在mainwindow的初始化组件之后打开窗口吗?
public partial class MainWindow : Window
{
public MainWindow ()
{
InitializeComponent();
OpenProjectsView();
}
private void OpenProjectsView()
{
ProjectsView projectWindow= new ProjectsView();
projectWindow.Owner = this;
projectWindow.ShowDialog();
}
}
答案 0 :(得分:1)
在Form.Activated事件中调用OpenProjectsView()。
private void MainWindow_Activated(object sender, System.EventArgs e)
{
OpenProjectsView();
}
答案 1 :(得分:1)
public partial class MainWindow : Window
{
public MainWindow ()
{
InitializeComponent();
OpenProjectsView();
}
private void OpenProjectsView()
{
ProjectsView projectWindow= new ProjectsView();
projectWindow.Owner = this;
projectWindow.TopMost = true;
projectWindow.Show();
}
}
这将使第二个窗口位于第一个窗口的顶部,但是因为您在父窗口构造函数中创建并显示它,它将始终在父窗口之前显示(获取实例化)。
此方法允许这种情况发生,同时您仍然可以与两个窗口进行互动(Show()
而不是ShowDialog()
)。
正如其他人所提到的,你可以在一个事件中实例化你的窗口,而不是构造函数,但这取决于你需要什么......你的问题有点含糊不清! :O)
答案 2 :(得分:0)
试试这个。它将在渲染主窗口后启动窗口。
public MainWindow()
{
InitializeComponent();
this.ContentRendered+= Window_ContentRendered;
}
private void Window_ContentRendered(object sender, RoutedEventArgs e)
{
OpenProjectsView();
}
答案 3 :(得分:0)
试试这段代码
projectWindow.IsMdiContainer = True;
projectWindow.MdiParent = this;
projectWindow.Show();