WPF对齐问题

时间:2010-11-07 12:59:08

标签: wpf alignment

我有这个窗口:

alt text

我的问题是,当数字大于2位时,它会将红色矩形推到 正确的。我想这样做:

alt text

不得将矩形推到右侧。

这是我的XAML:

    <StackPanel>
    <Border BorderThickness="1" BorderBrush="Beige">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="30" />
                <ColumnDefinition Width="auto" />
                <ColumnDefinition Width="auto" />
            </Grid.ColumnDefinitions>

            <StackPanel Orientation="Horizontal" Grid.Column="1">
                <TextBlock Text="1" VerticalAlignment="Top" />
                <Rectangle Width="20" Height="20" Fill="Red" VerticalAlignment="Top" />
            </StackPanel>
        </Grid>
    </Border>
    <Border BorderThickness="1" BorderBrush="Beige">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="30" />
                <ColumnDefinition Width="auto" />
                <ColumnDefinition Width="auto" />
            </Grid.ColumnDefinitions>

            <StackPanel Orientation="Horizontal" Grid.Column="1" >
                <TextBlock Text="1123" VerticalAlignment="Top" />
                <Rectangle Width="20" Height="20" Fill="Red" VerticalAlignment="Top" />
            </StackPanel>
        </Grid>
    </Border>
</StackPanel>

1 个答案:

答案 0 :(得分:1)

<StackPanel>
    <Border BorderThickness="1" BorderBrush="Beige">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="30" />
                <ColumnDefinition Width="auto" />
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition />
            </Grid.RowDefinitions>
            <TextBlock Text="1" VerticalAlignment="Top" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right"/>
            <Rectangle Width="20" Height="20" Fill="Red" Grid.Column="1" Grid.Row="0"/>
            <TextBlock Text="1123" VerticalAlignment="Top" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right"/>
            <Rectangle Width="20" Height="20" Fill="Red" Grid.Column="1" Grid.Row="1"/>
        </Grid>
    </Border>
</StackPanel>