C# XAML HorizontalAlignment属性不符合我的要求

C# XAML HorizontalAlignment属性不符合我的要求,c#,wpf,xaml,C#,Wpf,Xaml,网格内的xaml代码: <StackPanel Orientation="Horizontal" HorizontalAlignment="Right"> <TextBlock Text="My text: " HorizontalAlignment="Left" /> <TextBox Text="{Binding ...}" /> </StackPanel> 我希望textblock左对齐,Tetblock右对齐。在前

网格内的xaml代码:

<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
     <TextBlock Text="My text: " HorizontalAlignment="Left" />
     <TextBox Text="{Binding ...}" />
</StackPanel>

我希望textblock左对齐,Tetblock右对齐。在前面的代码中,两者都是右对齐的

如果我添加内部StackPanel,结果相同:

<StackPanel Orientation="Horizontal"  HorizontalAlignment="Right">
     <StackPanel HorizontalAlignment="Left">
        <TextBlock Text="My text: " HorizontalAlignment="Left" />
     </StackPanel>
     <TextBox  Text="{Binding ...}" />
</StackPanel>

我该怎么办? 提前发送Thx。

使用
HorizontalContentAlignment
TextAlignment
<代码>水平对齐定义
文本框
相对于
堆栈面板的对齐方式。默认情况下,
文本框
内的文本仍然向左对齐,除非应用了全局
样式

另外,具有水平方向的
堆叠面板始终使用尽可能小的空间。因此,它将尽可能紧密地堆叠控件。如果要正确格式化,必须使用网格或为
文本框
/
文本块
控件指定固定宽度

/编辑:对不起<代码>文本对齐
用于
文本框
文本块
控件
HorizontalContentAlignment
用于不明确使用
文本
属性(例如
标签
等)的控件

如果不想使用固定宽度,另一种选择是Dockpanel,如下所示:

<DockPanel Grid.Column="0" Grid.Row="0" Margin="10, 0" LastChildFill="true">
    <TextBox   Width="160" Height="30" DockPanel.Dock="Right" BorderBrush="#6593CF" BorderThickness="1" Text="{Binding ...}" />
    <TextBlock Text="My text: " FontSize="14" FontWeight="SemiBold" DockPanel.Dock="Left" TextAlignment="Left" />
</DockPanel>


StackPanel
是一个错误的控件。它的
子项
一个接一个地定位。试着给StackPanel一些不同的东西(例如,
Background=“Green”
)看一下。您可能想使用
网格
。不清楚为什么要将
StackPanel
向右对齐,
Stretch
可以做你想做的事,但是你有另一个问题,你试图通过将它向右对齐来解决,哪一个?@Sinatr我猜他首先希望文本对齐,但后来我意识到他可能希望
StackPanel
填充
Gird
单元格,而
TextBlock
应该只填充剩余的空间。如果是这样的话,一个
DockPanel
将起到作用,因为它可以使用最后一个控件来填充剩余的空间。