当我指定Horizo​​ntalAlignment =“Right”时,WPF UserControls显示为左

时间:2016-08-03 16:09:02

标签: c# wpf xaml

这是我的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>

为什么左边会显示2个按钮?

3 个答案:

答案 0 :(得分:3)

您的Width移除StackPanel,您的堆栈面板会与您的控件对齐。

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

答案 1 :(得分:1)

$('#fileupload').fileupload({ xhrFields: {withCredentials: true}, url: '//static.example.com', stop: function (e) { console.log('Uploads finished'); window.location = "/result.php"; } }); 就是这样 - 它会将元素水平堆叠在一起。你的StackPanel指的是堆栈面板,它会将它移到右边,而不是它们里面的按钮。

相反,也许尝试使用HorizontalAlignment代替Grid,然后将StackPanel(没有StackPanel元素集)放入其中。

答案 2 :(得分:1)

HorizontalAlignment控制容器的对齐。

请尝试HorizontalContentAlignment

正如Abin所指出的,在我的匆忙中,我忘了StackPanel没有Horizo​​ntalContentAlignment属性。

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