【问题标题】:WPF - HorizontalAlignment behaviorWPF - 水平对齐行为
【发布时间】:2014-03-15 14:19:09
【问题描述】:

我正在尝试使用 WPF,因此我创建了一些测试窗口来查看它的运行情况,但我遇到了一些我没有预料到的使用 Horizo​​ntalAlignment 属性的行为。

首先屏幕是这样的:

问题是,在标记网格的底行,我想让左边的 textBlock 和 CheckBox 向左对齐,中间的 textBlock 和 DatePicker 向中心对齐,右边也一样。正如您在前面的图片中看到的那样,它并没有真正发生。

此网格行的 XAML:

<StackPanel Grid.Row="2" Grid.ColumnSpan="2" Orientation="Horizontal">
        <TextBlock HorizontalAlignment="Left" Margin="10">Filter By Date</TextBlock>
        <CheckBox HorizontalAlignment="Left" Margin="2" Height="18" Width="13"></CheckBox>
        <TextBlock HorizontalAlignment="Center" Margin="10">Begin Date</TextBlock>
        <DatePicker HorizontalAlignment="Center" Margin="2"> </DatePicker>
        <TextBlock HorizontalAlignment="Right" Margin="10">End Date</TextBlock>
        <DatePicker HorizontalAlignment="Right" Margin="2"></DatePicker>
    </StackPanel>

我怎样才能让它们更靠近边缘和中心,而不是像我猜想是自动 StackPanel 的布局那样一个接一个?

【问题讨论】:

  • @Rohit Vats 你用来嵌入图片的语法是什么?
  • StackPanel 不会让你这样做。使用 Grid 并在其上定义 3 个 ColumnDefinitions。

标签: c# wpf xaml grid stackpanel


【解决方案1】:

水平的StackPanel 将忽略其子级的HorizontalAlignment,但您可以使用Grid 代替3 个StackPanel,左、中、右对齐:

<Grid Grid.Row="2" Grid.ColumnSpan="2">
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
        <TextBlock Margin="10">Filter By Date</TextBlock>
        <CheckBox Margin="2" Height="18" Width="13"></CheckBox>
    </StackPanel>
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
        <TextBlock Margin="10">Begin Date</TextBlock>
        <DatePicker Margin="2"> </DatePicker>
    </StackPanel>
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
        <TextBlock Margin="10">End Date</TextBlock>
        <DatePicker Margin="2"></DatePicker>
    </StackPanel>
</Grid>

【讨论】:

    猜你喜欢
    • 2020-01-08
    • 2012-11-07
    • 2012-09-12
    • 2012-12-07
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多