2016-10-10 30 views
0

我有一個相當簡單的設置到目前爲止,看起來像這樣:怪異元間距在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添加了一些填充,我想。嘗試添加一些'邊緣'複選框 – ASh

+0

@ASh我不明白。 UniformGrid裏面的東西的順序應該不重要嗎?它應該是統一的分佈。我試圖改變第三個盒子的順序,它仍然工作得很好。沒有什麼奇怪的東西,如果在盒子和字母之間沒有適當的填充,就會弄髒文字。這隻發生在前兩個框中。他們的設置是相同的。 – OmniOwl

+0

嘗試寫一個大字符串而不是'合法好'(例如'合法好好')。之後,#3中的所有列將獲得與第一列相同的寬度。在#2中,'Ranged'字符串是最長的,因此所有#2列的寬度都與#2 2nd列的寬度相同。所有這些都是因爲UniformGrids有'Left'水平對齊 – ASh

回答

1
  1. UniformGrid創建Columns大小相等。所以,最大的控制權決定了Column的大小。

  2. 設置HorizontalAlignment="Stretch"Margin="10,0,10,0"全部爲GroupBox。的Columns在第一UniformGrid

  3. 更改號碼3.