2013-08-24 30 views
0

在同一個StackPanel我想把一個控件在左邊對齊,另一個在右邊。我試圖用Grid和定義ColumnDefinitions但沒有運氣。網格列定義

<StackPanel Orientation="Horizontal"> 
        <Grid> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="Auto" /> 
          <ColumnDefinition Width="72" /> 
         </Grid.ColumnDefinitions> 

         <StackPanel HorizontalAlignment="Left" Grid.Column="0" Orientation="Horizontal"> 
          <Button /> 
         </StackPanel> 

         <StackPanel HorizontalAlignment="Right" Grid.Column="1"> 
          <Button Height="72" Width="72" />  
         </StackPanel> 
        </Grid> 
       </StackPanel> 

第一列通常會從50%至總寬度(取決於內容)的80%,而第二列將始終以72px。我怎樣才能設置第一列,以便它填充整個Grid寬度減去72px?

回答

0

集的第一列的Width屬性Star

<ColumnDefinition Width="*" /> 

使你的代碼的變化應該工作:

<StackPanel> 
    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="72" /> 
     </Grid.ColumnDefinitions> 

     <StackPanel Grid.Column="0" Orientation="Horizontal"> 
      <Button /> 
     </StackPanel> 

     <StackPanel HorizontalAlignment="Right" Grid.Column="1"> 
      <Button Height="72" Width="72" /> 
     </StackPanel> 
    </Grid> 
</StackPanel> 
+0

您的解決方案很好工作。不過,我之前的代碼現在也工作,因爲我刪除了根堆棧面板。 – fillobotto