0

私はWPFのラップパネルを使用しています。問題は、その右側に削減したい空きスペースがあり、その方法がわからないことです。

下の写真では、左側のマージンに対して右側が見えます。両方とも左側のマージンのようにしたいと思います。

ここに画像の説明を入力

これは私の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>
4

2 に答える 2

0

割り当てたスペースに非常に多くの正方形しか収まらないため、最後に大きなスペースが得られます。最後の正方形が最初の行に収まらないため、折り返されます。右側のスペースのチャンクは、余分な「デッド」スペースです。

WrapPanel でできるもう 1 つのことは、アイテムの大きさを指定することです。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>
于 2012-10-17T14:29:46.417 に答える