Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我如何打开后在另一个窗口内的窗口_C#_Wpf_Window - Fatal编程技术网

C# 我如何打开后在另一个窗口内的窗口

C# 我如何打开后在另一个窗口内的窗口,c#,wpf,window,C#,Wpf,Window,我有一个主窗口,我想在里面打开一个在上面的窗口。但我想进去的窗户似乎在主窗户打开之前就打开了。 要解决这个问题,我需要在初始化主窗口的组件后打开窗口 public partial class MainWindow : Window { public MainWindow () { InitializeComponent(); OpenProjectsView(); } private void OpenProject

我有一个主窗口,我想在里面打开一个在上面的窗口。但我想进去的窗户似乎在主窗户打开之前就打开了。 要解决这个问题,我需要在初始化主窗口的组件后打开窗口

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();
}

试试这个。它将在主窗口渲染后启动窗口

public MainWindow()
{
    InitializeComponent();
    this.ContentRendered+= Window_ContentRendered;
}

private void Window_ContentRendered(object sender, RoutedEventArgs e)
{
    OpenProjectsView();
}
这将使第二个窗口位于第一个窗口之上,但由于您是在父窗口构造函数中创建和显示它的,因此它将始终显示(实例化)在父窗口之前

此方法允许这种情况发生,同时您仍然可以与这两个窗口交互(
Show()
,而不是
ShowDialog()


正如其他人提到的,您可以在事件中实例化窗口,而不是构造函数,但这完全取决于您需要什么。。。你的问题有点模棱两可!:O)

试试这段代码

projectWindow.IsMdiContainer = True; 
projectWindow.MdiParent = this;
projectWindow.Show();
projectWindow.IsMdiContainer = True; 
projectWindow.MdiParent = this;
projectWindow.Show();