xaml代码,在网格内:
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<TextBlock Text="My text: " HorizontalAlignment="Left" />
<TextBox Text="{Binding ...}" />
</StackPanel>
我希望文本块左对齐,并且Tetblock要右对齐。使用前面的代码,两者都是右对齐的。
如果我添加一个内部StackPanel,结果相同:
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<StackPanel HorizontalAlignment="Left">
<TextBlock Text="My text: " HorizontalAlignment="Left" />
</StackPanel>
<TextBox Text="{Binding ...}" />
</StackPanel>
我该怎么办? Thx提前。
答案 0 :(得分:6)
使用 HorizontalContentAlignment
TextAlignment
。 HorizontalAlignment
定义TextBox
相对于StackPanel
的对齐方式。除非您已应用全局TextBox
,否则Style
内的文字仍默认为左对齐。
同样,水平方向的StackPanel
始终使用尽可能小的空间。因此它会尽可能紧密地堆叠控件。如果要正确格式化,则必须使用网格或为TextBox
/ TextBlock
控件指定固定宽度。
/编辑:抱歉。对于TextAlignment
或TextBox
控件,TextBlock
。 HorizontalContentAlignment
适用于未明确使用Text
属性的控件,例如Label
。
如果您不想使用固定宽度,另一种选择是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>