2012-10-17 163 views
0

我正在使用WPF的wrappanel。問題是在它的右側有一個我想減少的空白空間,我不知道如何。保證金在wrappanel

在下面的圖片中,您可以看到左側邊緣的右側,我希望它們都像左側一樣。

enter image description here

這是我的XAML:

<Grid x:Name="root"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="263*" /> 
     <ColumnDefinition Width="240*" /> 
    </Grid.ColumnDefinitions> 
    <Rectangle Fill="LightBlue"/> 
    <WrapPanel > 
     <Rectangle Margin="10" Fill="Red" Width="40" Height="40"></Rectangle> 
     <Rectangle Margin="10" Fill="Red" Width="40" Height="40"></Rectangle> 
     <Rectangle Margin="10" Fill="Red" Width="40" Height="40"></Rectangle> 
     <Rectangle Margin="10" Fill="Red" Width="40" Height="40"></Rectangle> 
     <Rectangle Margin="10" Fill="Red" Width="40" Height="40"></Rectangle> 
     <Rectangle Margin="10" Fill="Red" Width="40" Height="40"></Rectangle> 
    </WrapPanel> 
</Grid> 

回答

1

看起來你忘了居中WrapPanelColumn。像這樣:

<Grid x:Name="root"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="263*" /> 
     <ColumnDefinition Width="240*" /> 
    </Grid.ColumnDefinitions> 
    <Rectangle Fill="LightBlue"/> 
    <WrapPanel HorizontalAlignment="Center"> 
     <Rectangle Margin="10" Fill="Red" Width="40" Height="40"></Rectangle> 
     <Rectangle Margin="10" Fill="Red" Width="40" Height="40"></Rectangle> 
     <Rectangle Margin="10" Fill="Red" Width="40" Height="40"></Rectangle> 
     <Rectangle Margin="10" Fill="Red" Width="40" Height="40"></Rectangle> 
     <Rectangle Margin="10" Fill="Red" Width="40" Height="40"></Rectangle> 
     <Rectangle Margin="10" Fill="Red" Width="40" Height="40"></Rectangle> 
    </WrapPanel> 
</Grid> 
0

你在最後得到了很大的空間,因爲它只能在你分配的空間中容納很多方塊。它不能完全適合第一行的最後一個方塊,因此它將其包裹起來。右側的那塊空間就是額外的「死亡」空間。

你可以用WrapPanel做的另一件事是指定項目的大小。你會看到我已經使用了ItemHeight和ItemWidth屬性,這讓我更好地控制它的大小。

<Grid x:Name="LayoutRoot"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="263*" /> 
       <ColumnDefinition Width="280*" /> 
      </Grid.ColumnDefinitions> 
      <Rectangle Fill="LightBlue"/> 
      <WrapPanel ItemHeight="60" ItemWidth="60" > 
       <Rectangle Margin="5" Fill="Red" Width="60" Height="60"></Rectangle> 
       <Rectangle Margin="5" Fill="Red" Width="60" Height="60"></Rectangle> 
       <Rectangle Margin="5" Fill="Red" Width="60" Height="60"></Rectangle> 
       <Rectangle Margin="5" Fill="Red" Width="60" Height="60"></Rectangle> 
       <Rectangle Margin="5" Fill="Red" Width="60" Height="60"></Rectangle> 
       <Rectangle Margin="5" Fill="Red" Width="60" Height="60"></Rectangle> 
      </WrapPanel> 
      </Grid>