簡體   English   中英

正確對齊Button / StackPanel中的TextBlock

[英]Align TextBlock in Button / StackPanel correctly

我嘗試將TextBlocks對齊到左側。 該按鈕應占據其余區域(上圖)。 我怎樣才能做到這一點?

這是一個UWP / C#應用程序。

在此處輸入圖片說明

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

首先,您應該將ColumnDefinitions替換為:

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

然后從Grid刪除HorizontalAlignment="Left" ,然后可以實現所需的功能:

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

同樣,您似乎也需要設置StackPanel VerticalAlignment="Center"

<StackPanel Grid.Column="1" Grid.Row="0"
            HorizontalAlignment="Right" VerticalAlignment="Center">

更新:根據您的評論,您希望左側的文本設置ButtonHorizontalContentAlignment="Left"

<Button Background="Transparent" HorizontalAlignment="Stretch" 
        HorizontalContentAlignment="Left">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM