正确对齐Button / StackPanel中的TextBlock

时间:2016-11-08 10:27:50

标签: c# xaml uwp

我尝试将TextBlocks对齐到左侧。 按钮应该占据该区域的其余部分(直到图片)。 我怎么能这样做?

这是一个UWP / C#应用程序。

enter image description here

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <Grid VerticalAlignment="Center" HorizontalAlignment="Left">

        <Button Background="Transparent" HorizontalAlignment="Stretch">
            <StackPanel HorizontalAlignment="Left">
                <TextBlock x:Name="TextBlock1" TextWrapping="Wrap" Text="Name1"/>
                <TextBlock x:Name="TextBlock2" TextWrapping="Wrap" Text="Name2" />
            </StackPanel>
        </Button>

    </Grid>

    <StackPanel Grid.Column="1" Grid.Row="0" HorizontalAlignment="Right">
        <Button Height="50" Width="50" Background="Transparent" Click="Button_Click">
            <Image x:Name="ImageFavorit" Source="/Assets/Stern/VGrau64.png"/>
        </Button>
    </StackPanel>
</Grid>

1 个答案:

答案 0 :(得分:2)

首先,您应该将ColumnDefinitions替换为:

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="Auto"/>
 </Grid.ColumnDefinitions>

然后从HorizontalAlignment="Left"中删除Grid,然后就可以实现您想要的目标:

<Grid VerticalAlignment="Center">
    <Button Background="Transparent" HorizontalAlignment="Stretch">
    ...

您似乎也需要设置VerticalAlignment="Center"的{​​{1}}:

StackPanel

更新:根据您希望左侧文字的评论设置<StackPanel Grid.Column="1" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center"> 的{​​{1}}:

HorizontalContentAlignment="Left"