如何在WPF网格中向右或向左对齐时使单元格占据整个宽度

时间:2013-08-22 10:56:14

标签: c# wpf datagrid grid-layout

我在WPF中设计了一些网格,并希望显示与右边对齐的数字,但是当我设置Horizo​​ntalAlignment = Right时,单元格本身不会使用所有可用宽度,因此边框根据内容绘制了一半。看看附图。

enter image description here

代码是:

<Grid Width="620" Name="tblTaxBalance">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="110"/>
        <ColumnDefinition Width="350"/>
        <ColumnDefinition Width="80" Style="{StaticResource CellRightAlign}"/>
        <ColumnDefinition Width="80" Style="{StaticResource CellRightAlign}"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>

    <!-- row 1 -->
    <Label Grid.RowSpan="2" Grid.Row="0" Style="{StaticResource TaxTableCellStyle}" BorderThickness="1">Тайлангийн төрөл</Label>
    <Label Grid.RowSpan="2" Grid.Row="0" Grid.Column="1" Style="{StaticResource TaxTableCellStyle}" BorderThickness="0,1,1,1">Татварын төрөл</Label>
    <Label Grid.ColumnSpan="2" Grid.Row="0" Grid.Column="2" Style="{StaticResource TaxTableCellStyle}" BorderThickness="0,1,1,1">Эцсийн үлдэгдэл /мян. төг/</Label>

    <!-- row 2 -->
    <Label Grid.RowSpan="2" Grid.Row="1" Grid.Column="2" Style="{StaticResource TaxTableCellStyle}" BorderThickness="0,0,1,1" HorizontalAlignment="Right">Дутуу</Label>
    <Label Grid.RowSpan="2" Grid.Row="1" Grid.Column="3" Style="{StaticResource TaxTableCellStyle}" BorderThickness="0,0,1,1">Илүү</Label>
</Grid>

1 个答案:

答案 0 :(得分:2)

使用Horizo​​ntalAlignment Stretch并设置FlowDirection RightToLeft

就像那样:

<Label Grid.RowSpan="2" Grid.Row="1" Grid.Column="2" Style="{StaticResource TaxTableCellStyle}" BorderThickness="0,0,1,1" HorizontalAlignment="Stretch" FlowDirection="RightToLeft">Дутуу</Label>