0

これが私が望むレイアウトです:

2 列 2 行のグリッド

行 1 には、両方の列にまたがるグループ ボックスが含まれている必要があります。行 2、列 1 にはグループ ボックスが含まれます 行 2、列 2 には別のグループ ボックスが含まれます。

行 1 のグループ ボックスでは、左側にラベル/コンボ ボックスのスタックが必要です。右側には、ラベル/チェックボックスのスタックがあります。行 2/列 1 グループ ボックスで、最初の行のラベル/コンボ ボックスに合わせて、さらにラベル/コンボ ボックスが必要です。行 2/列 2 グループ ボックスで、最初の行のラベル/チェックボックスに合わせてさらにラベル/チェックボックスが必要です。

これが私がこれまでに持っているものです。私が抱えている問題は、行 1 のグループ ボックスのラベル/コンボ ボックスのペアがグループ ボックス全体にまたがることです。ただし、ラベル/コンボ ボックスを含む内側のグリッドに明示的に行 = 0、列 = 0 を設定しています。

Studio のないコンピューターで印刷物から入力しているため、これがコンパイルされない場合はご容赦ください。

<Grid>
   <Grid.RowDefinitions>
      <RowDefinition/>
      <RowDefinition/>      
   </Grid.RowDefinitions>
   <Grid.ColumnDefinitions>
      <ColumnDefinition/>
      <ColumnDefinition/>
   <Grid.ColumnDefinitions>
   <GroupBox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
      <GroupBox.Header>
         <Label Content="Device Configuration"></Label>
      </GroupBox.Header>
      <Grid Grid.Row="0" Column="0">
         <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>      
            <RowDefinition/>      
         </Grid.RowDefinitions>
         <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
         <Grid.ColumnDefinitions>

         <Label Grid.Column="0" Grid.Row="0" Content="Label 1"></Label>
         <ComboBox Grid.Column="1" Grid.Row="0"></ComboBox>

         <Label Grid.Column="0" Grid.Row="1" Content="Label 2"></Label>
         <ComboBox Grid.Column="1" Grid.Row="1"></ComboBox>

         <Label Grid.Column="0" Grid.Row="2" Content="Label 3"></Label>
         <ComboBox Grid.Column="1" Grid.Row="2"></ComboBox>
      </Grid>
   </GroupBox>
</Grid>
4

2 に答える 2

1

コントロールがグリッドの直接の子孫ではなくなると、グリッド パネル内にあるという概念がなくなり、そのようにフォーマットされません。途中に GroupBox があるため、これは Grid の直接の子孫ではありません。

GroupBox の内容を最上位の Grid の一部であるかのように見せたい場合は、独自にその Grid 構造 (GroupBox の 2 列) を再現する必要があります。

親がグリッドでなくても、アイテムに Grid.* を配置しても、Visual Studio はエラーを出しません。

于 2010-06-24T13:56:02.213 に答える
0

あなたは近くにいます。コードを壊したのがコピー/過去であったかどうかはわかりませんが、Grid.ColumnDefinitionsタグを閉じていませんでした。列を整列させたい場合は、一番上のグループ ボックスの最初の外側のグリッドを再現する必要がある場合もあります。

<Grid>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>

        <GroupBox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
            <GroupBox.Header>
                <Label Content="Device Configuration"></Label>
            </GroupBox.Header>
            <Grid Grid.Row="0" Column="0">
                <Grid.RowDefinitions>
                    <RowDefinition/>
                    <RowDefinition/>
                    <RowDefinition/>
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition/>
                    <ColumnDefinition/>
                </Grid.ColumnDefinitions>

                <Label Grid.Column="0" Grid.Row="0" Content="Label 1"></Label>
                <ComboBox Grid.Column="1" Grid.Row="0"></ComboBox>

                <Label Grid.Column="0" Grid.Row="1" Content="Label 2"></Label>
                <ComboBox Grid.Column="1" Grid.Row="1"></ComboBox>

                <Label Grid.Column="0" Grid.Row="2" Content="Label 3"></Label>
                <ComboBox Grid.Column="1" Grid.Row="2"></ComboBox>
            </Grid>
        </GroupBox>

        <GroupBox Grid.Row="1" Grid.Column="0">
            <TextBlock>Row 1 Column 0</TextBlock>
        </GroupBox>

        <GroupBox Grid.Row="1" Grid.Column="1">
            <TextBlock>Row 1 Column 1</TextBlock>
        </GroupBox>
    </Grid>
于 2010-06-24T13:57:27.100 に答える