2016-10-10 2 views
0

У меня есть довольно простая установка до сих пор, которая выглядит следующим образом:Weird Ограничитель в UniformGrid

enter image description here

Как вы можете видеть номер 3 выглядит прекрасно. Остальные два, однако, этого не делают. У меня есть следующий код:

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="Auto"/> 
    </Grid.ColumnDefinitions> 
    <StackPanel Grid.Row="0" Orientation="Vertical" Margin="0,0,5,0" Background="#FFEAEAEA"> 
     <GroupBox x:Name="playStyleBox" Header="1. Play Style" HorizontalAlignment="Left" Margin="10,0,10,0" VerticalAlignment="Top"> 
      <UniformGrid Columns="4"> 
       <CheckBox x:Name="CheckBoxSubtle">Subtle</CheckBox> 
       <CheckBox x:Name="CheckBoxBalanced">Balanced</CheckBox> 
       <CheckBox x:Name="CheckBoxAggressive">Aggressive</CheckBox> 
       <CheckBox x:Name="CheckBoxSupportive">Supportive</CheckBox> 
      </UniformGrid> 
     </GroupBox> 
     <GroupBox x:Name="playStyleSubBox" Header="2. Sub Play Style" HorizontalAlignment="Left" Margin="10,0,10,0" VerticalAlignment="Top"> 
      <UniformGrid Columns="3"> 
       <CheckBox x:Name="CheckBoxMelee">Melee</CheckBox> 
       <CheckBox x:Name="CheckBoxRanged">Ranged</CheckBox> 
       <CheckBox x:Name="CheckBoxMagic">Magic</CheckBox> 
      </UniformGrid> 
     </GroupBox> 
     <GroupBox x:Name="alignmentBox" Header="3. Alignment" HorizontalAlignment="Left" Margin="10,0,5,0" VerticalAlignment="Top"> 
      <UniformGrid Columns="3"> 
       <CheckBox x:Name="CheckBoxLawfulGood">Lawful Good</CheckBox> 
       <CheckBox x:Name="CheckBoxNeutralGood">Neutral Good</CheckBox> 
       <CheckBox x:Name="CheckBoxChaoticGood">Chaotic Good</CheckBox> 
       <CheckBox x:Name="CheckBoxLawfulNeutral">Lawful Neutral</CheckBox> 
       <CheckBox x:Name="CheckBoxNeutral">Neutral</CheckBox> 
       <CheckBox x:Name="CheckBoxChaoticNeutral">Chaotic Neutral</CheckBox> 
       <CheckBox x:Name="CheckBoxLawfulEvil">Lawful Evil</CheckBox> 
       <CheckBox x:Name="CheckBoxNeutralEvil">Neutral Evil</CheckBox> 
       <CheckBox x:Name="CheckBoxChaoticEvil">Chaotic Evil</CheckBox> 
      </UniformGrid> 
     </GroupBox> 
    </StackPanel> 
    <GridSplitter Grid.Column="0" Width="4" BorderBrush="Red" VerticalAlignment="Stretch"> 
     <GridSplitter.Template> 
      <ControlTemplate TargetType="{x:Type GridSplitter}"> 
       <Grid> 
        <Button Content="⁞"/> 
        <Rectangle Fill="#FFACACAC"/> 
       </Grid> 
      </ControlTemplate> 
     </GridSplitter.Template> 
    </GridSplitter> 
</Grid> 

Любая помощь будет оценена. Я довольно потерял, почему это происходит с первыми двумя UniformGrid, но не с последним.

+0

, что это вопрос именно? UniformGrids имеют горизонтальное выравнивание «влево», а ширина столбца определяется наибольшим флажком. в 3-х крупнейших флажках оказалось в 3-м столбце, в отличие от 1 и 2. Также в # 3 наибольший флажок не привязан к правой границе, потому что groupBox добавляет некоторые дополнения, я думаю. попробуйте добавить поле «Margin» к флажкам – ASh

+0

@ASh Я не понимаю. Порядок вещей внутри UniformGrid не должен иметь значения, если это так? Он должен быть равномерным распределением. Я попытался изменить порядок для третьего ящика, и он все еще работает отлично. Ничего странного, как протертый текст без надлежащего заполнения между ящиками и буквами. Это происходит только в первых двух коробках. Их установки идентичны. – OmniOwl

+0

попробуйте написать большую строку вместо «Lawful Good» (например, «Lawful Good Good Good»). после этого все столбцы в # 3 будут иметь ту же ширину, что и первый столбец. в # 2 строка 'Ranged' самая длинная, поэтому все столбцы # 2 имеют ту же ширину, что и второй номер 2. все, что происходит, потому что UniformGrids имеют горизонтальное выравнивание «Left» – ASh

ответ

1
  1. UniformGrid создать Columns одинакового размера. Таким образом, наибольший контроль управляет размером Column.

  2. Комплект HorizontalAlignment="Stretch" и Margin="10,0,10,0" всего GroupBox.

  3. Изменение числа Columns в первой UniformGrid до 3.

Смежные вопросы