C# XAML如何将元素排列在居中元素之后

C# XAML如何将元素排列在居中元素之后,c#,wpf,xaml,C#,Wpf,Xaml,我想创建一个按钮,将显示一些文字连同一个状态图标内。文本应居中,状态图标应位于文本旁边。大概是这样的: 我没有找到一种方法,如何只将文本居中,然后将图标定位在居中文本之后。现在我正在使用一个网格解决方案,它将文本居中,并将图标向右对齐 <Button VerticalContentAligment="Stretch" HorizontalContentAligment="Stretch"> <Grid> <TextBlock Vertical

我想创建一个按钮,将显示一些文字连同一个状态图标内。文本应居中,状态图标应位于文本旁边。大概是这样的:

我没有找到一种方法,如何只将文本居中,然后将图标定位在居中文本之后。现在我正在使用一个网格解决方案,它将文本居中,并将图标向右对齐

<Button VerticalContentAligment="Stretch" HorizontalContentAligment="Stretch">
    <Grid>
        <TextBlock VerticalAligment="Center" HorizontalAligment="Center"/>
        <Image VerticalAligment="Center" HorizontalAligment="Right"/>
    </Grid>
</Button>
这不是我想要的,但它符合我目前的尺寸


我知道这可以通过一些绑定魔法来实现,但这似乎太简单了。如果你能给我指出一个没有绑定魔法的解决方案,那就太好了,但即使有一个解决方案,我也会非常感激。

一个有3列的网格应该可以工作。当左右列的宽度相等时,中间列将自动居中

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <TextBlock Grid.Column="1" VerticalAlignment="Center"/>
    <Image Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</Grid>