如何在另一个 window 之后打开 window
How do I open window inside another window after
我有一个 mainwindown,我想打开一个位于它上面的 window。但似乎我想要的 window 在 mainwindow 打开之前就打开了。
为了解决这个问题,我需要在 mainwindow?
的初始化组件之后打开 window
public partial class MainWindow : Window
{
public MainWindow ()
{
InitializeComponent();
OpenProjectsView();
}
private void OpenProjectsView()
{
ProjectsView projectWindow= new ProjectsView();
projectWindow.Owner = this;
projectWindow.ShowDialog();
}
}
在 Form.Activated 事件中调用 OpenProjectsView( )。
private void MainWindow_Activated(object sender, System.EventArgs e)
{
OpenProjectsView();
}
试试这个。它会在您的主要 window 呈现后启动您的 window。
public MainWindow()
{
InitializeComponent();
this.ContentRendered+= Window_ContentRendered;
}
private void Window_ContentRendered(object sender, RoutedEventArgs e)
{
OpenProjectsView();
}
public partial class MainWindow : Window
{
public MainWindow ()
{
InitializeComponent();
OpenProjectsView();
}
private void OpenProjectsView()
{
ProjectsView projectWindow= new ProjectsView();
projectWindow.Owner = this;
projectWindow.TopMost = true;
projectWindow.Show();
}
}
这将使第二个 window 位于第一个之上,但是因为您在父 window 构造函数中创建并显示它,所以它将始终出现(实例化)在您的父之前window.
此方法允许这种情况发生,同时您仍然可以与两者互动 windows(Show()
而不是 ShowDialog()
)。
正如其他人所提到的,您可以在一个事件中实例化您的 window,而不是在构造函数中实例化,但这完全取决于您的需要……您的问题有点模棱两可! :O)
试试这个代码
projectWindow.IsMdiContainer = True;
projectWindow.MdiParent = this;
projectWindow.Show();
我有一个 mainwindown,我想打开一个位于它上面的 window。但似乎我想要的 window 在 mainwindow 打开之前就打开了。 为了解决这个问题,我需要在 mainwindow?
的初始化组件之后打开 windowpublic partial class MainWindow : Window
{
public MainWindow ()
{
InitializeComponent();
OpenProjectsView();
}
private void OpenProjectsView()
{
ProjectsView projectWindow= new ProjectsView();
projectWindow.Owner = this;
projectWindow.ShowDialog();
}
}
在 Form.Activated 事件中调用 OpenProjectsView( )。
private void MainWindow_Activated(object sender, System.EventArgs e)
{
OpenProjectsView();
}
试试这个。它会在您的主要 window 呈现后启动您的 window。
public MainWindow()
{
InitializeComponent();
this.ContentRendered+= Window_ContentRendered;
}
private void Window_ContentRendered(object sender, RoutedEventArgs e)
{
OpenProjectsView();
}
public partial class MainWindow : Window
{
public MainWindow ()
{
InitializeComponent();
OpenProjectsView();
}
private void OpenProjectsView()
{
ProjectsView projectWindow= new ProjectsView();
projectWindow.Owner = this;
projectWindow.TopMost = true;
projectWindow.Show();
}
}
这将使第二个 window 位于第一个之上,但是因为您在父 window 构造函数中创建并显示它,所以它将始终出现(实例化)在您的父之前window.
此方法允许这种情况发生,同时您仍然可以与两者互动 windows(Show()
而不是 ShowDialog()
)。
正如其他人所提到的,您可以在一个事件中实例化您的 window,而不是在构造函数中实例化,但这完全取决于您的需要……您的问题有点模棱两可! :O)
试试这个代码
projectWindow.IsMdiContainer = True;
projectWindow.MdiParent = this;
projectWindow.Show();