digz6666
digz6666

Reputation: 1828

How to make cell to take full width when aligned to right or left in WPF grid

I'm designing some grid in WPF and want to display numbers aligned to right, but when I set HorizontalAlignment=Right the cell itself don't use all available width, so the border is painted half based on content. Look at the attached picture.

enter image description here

The code is:

<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>

Upvotes: 2

Views: 1775

Answers (1)

MarPa
MarPa

Reputation: 88

Use HorizontalAlignment Stretch and set FlowDirection RightToLeft

Like that:

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

Upvotes: 2

Related Questions