水平对齐元素到最大宽度,但在父母被挤压时包裹

时间:2017-03-13 11:13:48

标签: wpf xaml

我有Grid,其中包含两个Button个。我希望第一个按钮对齐左侧,第二个按钮向右对齐(这就是我使用Grid作为父级的原因)。当整个窗口受到挤压以致按钮不能完全可见时,我希望它们包裹 - 即。第一个保持与左对齐但第二个保持移动到新行(并且优选但不一定仍然与右对齐)。为此,我使用WrapPanel,但WrapPanel不会填充父窗口,因此不会将按钮左右对齐。

有没有办法同时获得两者 - 水平对齐和包装?

我目前的代码:

<Grid Grid.Row="2" Visibility="{Binding Attachments.Count, Converter={StaticResource GreaterThanGivenValueVisibilityConverter}, ConverterParameter=1}">
  <Button Grid.Row="1" Grid.Column="1" HorizontalAlignment="Left" VerticalAlignment="Top" Height="30" BorderThickness="0" Focusable="False" Command="{Binding ExpandAttachmentsPanel}">
  </Button>
  <Button Grid.Row="1" Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Top" Height="30" BorderThickness="0" Focusable="False" Command="{Binding DownloadAllAttachmentsCommand}">
  </Button>
</Grid>

1 个答案:

答案 0 :(得分:2)

  

有没有办法同时获得两者 - 水平对齐和包装?

没有内置$(document).ready(function() { $("button").click(function() { $(".menu").fadeToggle(400); }); }); 为您提供此行为,但您应该能够处理Panel的{​​{1}}事件并以编程方式调整SizeChanged其中一个按钮。像这样:

WrapPanel
Margin

enter image description here