【问题标题】:Relative positioning in WPF xamlWPF xaml中的相对定位
【发布时间】:2012-09-29 14:35:31
【问题描述】:

是否可以在 XAML 定义中相对于另一个控件定位控件?
例如,如果我想将一个控件恰好放在另一个更宽的控件的中间。
如果是这样 - 如何?

【问题讨论】:

  • 对于初学者,您是否尝试过使用 Horizo​​ntalAlignment="Center" 作为内部控件?
  • 使控件居中只是一个例子。我正在寻找更通用的东西:)

标签: wpf


【解决方案1】:

如果您想使控件居中,您可以将它们包装在一个网格中:

<Grid>
    <TextBox Height="132"   Width="229" VerticalAlignment="Center" HorizontalAlignment="Center" />
    <Button Content="Button" Height="23" Width="75" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Grid>

其他定位可以通过 StackPanel 等其他面板来完成。网格是最灵活的选择。

编辑:更新了用于控制位置的网格和列:

<Grid Height="50" Width="200">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="50*" />
        <ColumnDefinition Width="20*" />
        <ColumnDefinition Width="75*" />
    </Grid.ColumnDefinitions>
    <TextBox Grid.Column="0" Background="Red" />
    <Button Content="Button"  Grid.Column="2"   />
</Grid>

【讨论】:

  • 好的,但将控件居中只是一个示例。如果我希望一个控件在另一个控件之后启动 20 个单位怎么办?
  • 我刚刚输入了一些随机数。您应该能够通过 Widths、Heights Column 和 Rowspans 获得所需的定位。
  • 所以这一切都是通过面板完成的?控件不能互相使用宽度或高度等属性吗?
  • 控制子元素的位置是面板的目的。如果你问我,实际上非常好的 OO。 msdn.microsoft.com/en-us/library/…
猜你喜欢
  • 2022-01-17
  • 1970-01-01
  • 2013-12-18
  • 2010-09-14
  • 1970-01-01
  • 2011-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多