2016-05-31 12 views
1

私は2つのウィンドウを私のプロジェクトに持っています。 MainWindow.xamlの1つはControl_Page.xamlです。 コントロールページウィンドウをColumnDefinitionとRowDefinitionに挿入したいと思います。この定義はMainWindowで定義されています。私はヴァールにControl_Pageと呼ばれていました列内の別のウィンドウ定義

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

は、ここに私のコードです。その後、メインウィンドウに子供として挑戦しますが、動作しません。

私はこの問題を解決できませんでした。

コードビハインド;別のウィンドウの子ができないよう窓を挿入

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); 
    } 
} 
+0

1) 'Control_Page'を動的にまたは静的に追加しますか? 2)グリッド内に非常に多くのグリッドが必要なのはなぜですか? – Dennis

+0

こんにちはデニス、私は多くのWindowsを作成し、動的に行または列のWindowsの位置を変更します。次に、選択されたウィンドウは、選択されたウィンドウの2x2セルにスパンメソッドを使用します(次の章になります)。 –

答えて

0

、あなたは{「ウィンドウがツリーのルートでなければなりません。ビジュアルの子としてウィンドウを追加することはできません。」}例外で終わるだろう。

UserControlとしてControl_Page.xamlをグリッドに追加できます。これまで、.xamlファイル(および対応する.csファイル)のWindowからUserControlにタイプを変更するようにしてください。

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

ありがとうLaskoranそれを試してみましょう:) –

+0

おかげでたくさんの作品! –

関連する問題