1

I Have 2 Window In My Project. One Of This Is MainWindow.xaml Other One Is Control_Page.xaml. I Would Like To Insert Control Page Window To ColumnDefinition And RowDefinition. This Definitions Defined On MainWindow.

Here Is My Code:

<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>

I Was Called The Control_Page To A Var. Then Try As Children To The Main Window But It Does Not Work.

I Tried This Can't Solve This Problem.

Code Behind;

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);
    }
}
Dennis
  • 37,026
  • 10
  • 82
  • 150
  • 1) Do you want to add `Control_Page` dynamically or statically? 2) Why do you need so many grids inside grid? – Dennis May 31 '16 at 07:30
  • Hello Dennis, I Will Create Many Windows And Dynamically Change The Position Of The Windows On The Rows Or Columns. Then For Selected Window Will Be Used 2x2 CellsWith Span Method For Selected Window ( Will Be Next Chapter ) To Make It Bigger. – alican yildiz May 31 '16 at 08:12

1 Answers1

0

Inserting a window as a child of another window is not possible, you will end up with a {"Window must be the root of the tree. Cannot add Window as a child of Visual."} exception.

You can add your Control_Page.xaml as an UserControl to your grid. Herefore make sure to change to type from Window to UserControl in that .xaml file (and also in the corresponding .cs file)

<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>
Laskoran
  • 44
  • 3