C# 当我指定HorizontalAlignment=";对",;

C# 当我指定HorizontalAlignment=";对",;,c#,wpf,xaml,C#,Wpf,Xaml,这是我的WPF用户控制代码,简化为相关部分: <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:

这是我的WPF用户控制代码,简化为相关部分:

<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>


为什么这两个按钮显示在左侧?

A
StackPanel
正是这样做的——在您的情况下,它水平地将元素堆叠在一起。您的
水平对齐
指的是堆栈面板,它将向右移动,而不是其中的按钮


相反,可以尝试使用
网格
而不是
堆栈面板
,然后将
堆栈面板
(没有
宽度
元素集)放在其中。

堆栈面板正是这样做的——在您的情况下,它水平地将元素堆叠在一起。您的
水平对齐
指的是堆栈面板,它将向右移动,而不是其中的按钮


相反,可以尝试使用
网格
而不是
堆叠面板
,然后将
堆叠面板
(没有
宽度
元素集)放在其中。

水平对齐
控制容器的对齐

改为尝试
HorizontalContentAlignment


正如Abin指出的,在我匆忙中忘记了StackPanel没有HorizontalContentAlignment属性


您可以使用DockPanel实现类似的功能,也可以使用Abin的解决方案。

HorizontalAlignment
控制容器的对齐

改为尝试
HorizontalContentAlignment


正如Abin指出的,在我匆忙中忘记了StackPanel没有HorizontalContentAlignment属性


不过,您可以使用DockPanel实现类似的功能,或者使用Abin的解决方案。

您的
堆栈面板的
宽度将与其中的控件向右对齐

<StackPanel  Orientation="Horizontal"  HorizontalAlignment="Right"  >
    <Button Height="45" Width="100" />
    <Button Height="45" Width="100" />
</StackPanel>

您的
堆栈面板有一个
宽度
,移除该宽度将使堆栈面板与其中的控件向右对齐

<StackPanel  Orientation="Horizontal"  HorizontalAlignment="Right"  >
    <Button Height="45" Width="100" />
    <Button Height="45" Width="100" />
</StackPanel>


StackPanel
上没有名为
HorizontalContentAlignment
的属性,但正如您所说的,设置了容器对齐方式。@AbinMathew-oops,真的!
StackPanel
上没有名为
HorizontalContentAlignment
的属性,但正如您所说的,正在设置容器对齐方式。@abinmahaw-oops,真的!我这么做只是为了简单的修复。Thx a ton:)我这么做是为了方便修复。泰铢一吨:)