Wpf 根据子元素之一对齐堆栈面板

Wpf 根据子元素之一对齐堆栈面板,wpf,xaml,Wpf,Xaml,我有一个带有StackPanel的按钮,我想根据第一个文本框(maintext)将StackPanel与中心对齐 7. PQRS 当前: 期望的: 考虑到所有按钮的大小似乎都相同,您可以使用一个具有均匀大小列的网格,以确保文本在所有按钮中的位置相同 <Button Style="{StaticResource NumPadStyle}" Grid.Column="0" Grid.Row="2" Tag="7"> <Grid>

我有一个带有StackPanel的按钮,我想根据第一个文本框(maintext)将StackPanel与中心对齐


7.
PQRS
当前:

期望的:

考虑到所有按钮的大小似乎都相同,您可以使用一个具有均匀大小列的网格,以确保文本在所有按钮中的位置相同

  <Button Style="{StaticResource NumPadStyle}" Grid.Column="0" Grid.Row="2" Tag="7">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <TextBlock Grid.Column="1"
                       Style="{StaticResource NumPadMainText}" Name="maintext">7</TextBlock>
            <TextBlock Grid.Column="2" HorizontalAlignment="Left"
                       Style="{StaticResource NumPadSubText}" 
                       Name="subtext">PQRS</TextBlock>
        </Grid>
   </Button>

7.
PQRS

LE:您可以将列中的
Width=“Auto”
值替换为固定值,如
Width=“20”
或其他,以防您希望所有按钮中的所有numpadsubtext都从同一位置开始。

最小宽度设置为堆栈面板:

<StackPanel Orientation="Horizontal" MinWidth="35">
     <TextBlock  Style="{StaticResource NumPadMainText}" Name="maintext">7</TextBlock>
     <TextBlock Style="{StaticResource NumPadSubText}" Name="subtext">PQRS</TextBlock>
</StackPanel>

7.
PQRS

第一个字母在中间是强制性的吗?或者我可以在中间。“LuSuuliVu的第一封信必须在中间。请你展示一下你的纽扣是怎么安排的?”使用网格?@RackM,数字必须对齐。@cagdas我的意思是说完整的XAML代码它不起作用,所有的主文本必须在按钮的中间。@cagdas,我已经更新了解决方案。看看现在是否可以。
<StackPanel Orientation="Horizontal" MinWidth="35">
     <TextBlock  Style="{StaticResource NumPadMainText}" Name="maintext">7</TextBlock>
     <TextBlock Style="{StaticResource NumPadSubText}" Name="subtext">PQRS</TextBlock>
</StackPanel>