当我指定HorizontalAlignment=“;对”;
本文关键字:HorizontalAlignment | 更新日期: 2023-09-27 17:59:56
这是我的WPF UserControl代码,简化为相关部分:
<UserControl x:Class="AKPS.View.UserCalibWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Width="1600" >
<Button Height="45" Width="100" />
<Button Height="45" Width="100" />
</StackPanel>
为什么这两个按钮显示在左边?
您正在为StackPanel
移除一个Width
,它将使您的堆栈面板与其中的控件向右对齐。
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" >
<Button Height="45" Width="100" />
<Button Height="45" Width="100" />
</StackPanel>
StackPanel
正是这样做的——它将元素水平堆叠在一起。您的HorizontalAlignment
指的是堆栈面板,它会将其向右移动,而不是其中的按钮。
相反,可以尝试使用Grid
而不是StackPanel
,然后将StackPanel
(没有Width
元素集)放在其中
HorizontalAlignment
控制容器的对齐。
请改用HorizontalContentAlignment
。
正如Abin所指出的,在我匆忙中,我忘记了StackPanel没有HorizontalContentAlignment属性。
不过,您可以使用DockPanel实现类似的功能,也可以使用Abin的解决方案。