C# 列定义中的另一个窗口

C# 列定义中的另一个窗口,c#,wpf,xaml,rowdefinition,columndefinition,C#,Wpf,Xaml,Rowdefinition,Columndefinition,我的项目中有两个窗口。其中一个是MainWindow.xaml,另一个是Control_Page.xaml。 我想在ColumnDefinition和RowDefinition中插入控制页窗口。此定义在MainWindow上定义 这是我的密码: <Grid x:Name="Grid_Main" SnapsToDevicePixels="True"> <Grid.ColumnDefinitions> <ColumnDefinition Widt

我的项目中有两个窗口。其中一个是MainWindow.xaml,另一个是Control_Page.xaml。 我想在ColumnDefinition和RowDefinition中插入控制页窗口。此定义在MainWindow上定义

这是我的密码:

<Grid x:Name="Grid_Main" SnapsToDevicePixels="True">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="312*"/>
        <ColumnDefinition Width="353*"/>
        <ColumnDefinition Width="351*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="187*"/>
        <RowDefinition Height="187*"/>
        <RowDefinition Height="186*"/>
        <RowDefinition Height="178*"/>
    </Grid.RowDefinitions>

    <Grid Grid.Column="0" Grid.Row="0" Margin="0"/>
    <Grid Grid.Column="1" Margin="0"/>
    <Grid Grid.Column="2" Margin="0"/>
    <Grid Margin="0" Grid.Row="1"/>
    <Grid Grid.Column="1" Margin="0" Grid.Row="1">
        <Button Content="Button" Margin="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Grid>
    <Grid Grid.Column="2" Margin="0" Grid.Row="1">
        <Button x:Name="button1" Content="Button" HorizontalAlignment="Center" Margin="0" VerticalAlignment="Center"/>
    </Grid>
    <Grid Margin="0" Grid.Row="2"/>
    <Grid Grid.Column="1" Margin="0" Grid.Row="2"/>
    <Grid Grid.Column="2" Margin="0" Grid.Row="2"/>
    <Grid Margin="0" Grid.Row="3"/>
    <Grid Grid.Column="1" Margin="0" Grid.Row="3"/>
    <Grid Grid.Column="2" Margin="0" Grid.Row="3"/>
</Grid>

无法将窗口作为另一窗口的子窗口插入,您将得到一个{“窗口必须是树的根。无法将窗口作为Visual的子窗口添加。”}异常

您可以将控件_Page.xaml作为用户控件添加到网格中。因此,请确保在该.xaml文件(以及相应的.cs文件)中更改为type from Window to UserControl


无法将窗口作为另一个窗口的子窗口插入,您将得到一个{“窗口必须是树的根。无法将窗口作为Visual的子窗口添加。”}异常

您可以将控件_Page.xaml作为用户控件添加到网格中。因此,请确保在该.xaml文件(以及相应的.cs文件)中更改为type from Window to UserControl



1)您想动态还是静态添加
Control\u页面
?2) 为什么网格中需要这么多网格?您好,丹尼斯,我将创建许多窗口,并动态更改窗口在行或列上的位置。然后,对于所选窗口,将使用2x2单元格和所选窗口的Span方法(将在下一章中)使其变大。1)您想动态还是静态添加
Control\u页面
?2) 为什么网格中需要这么多网格?您好,丹尼斯,我将创建许多窗口,并动态更改窗口在行或列上的位置。然后,对于选定的窗口,将使用2x2单元格,并使用跨度方法对选定的窗口(将在下一章)进行放大。谢谢拉斯科兰,让我试试看,它看起来很有用:)非常感谢它的工作!谢谢你,拉斯科兰,让我试试看,它看起来很有用:)非常感谢,它很有效!
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        var newWindow = new Control_Page();
        Grid.SetRow(newWindow, 0);
        Grid.SetColumn(newWindow, 0);
        Grid_Main.Children.Add(newWindow);
    }
}
<Grid x:Name="Grid_Main" SnapsToDevicePixels="True">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="312*"/>
        <ColumnDefinition Width="353*"/>
        <ColumnDefinition Width="351*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="187*"/>
        <RowDefinition Height="187*"/>
        <RowDefinition Height="186*"/>
        <RowDefinition Height="178*"/>
    </Grid.RowDefinitions>

    <Control_Page Grid.Column="0" Grid.Row="0" />

    <Grid Grid.Column="0" Grid.Row="0" Margin="0"/>
    <Grid Grid.Column="1" Margin="0"/>
    <Grid Grid.Column="2" Margin="0"/>
    <Grid Margin="0" Grid.Row="1"/>
    <Grid Grid.Column="1" Margin="0" Grid.Row="1">
        <Button Content="Button" Margin="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Grid>
    <Grid Grid.Column="2" Margin="0" Grid.Row="1">
        <Button x:Name="button1" Content="Button" HorizontalAlignment="Center" Margin="0" VerticalAlignment="Center"/>
    </Grid>
    <Grid Margin="0" Grid.Row="2"/>
    <Grid Grid.Column="1" Margin="0" Grid.Row="2"/>
    <Grid Grid.Column="2" Margin="0" Grid.Row="2"/>
    <Grid Margin="0" Grid.Row="3"/>
    <Grid Grid.Column="1" Margin="0" Grid.Row="3"/>
    <Grid Grid.Column="2" Margin="0" Grid.Row="3"/>
</Grid>