我想知道我是否可以在一个水平方向的StackPanel中有两个控件,以便正确的项应该停靠在StackPanel的右侧。
我尝试了以下方法,但不起作用:
<StackPanel Orientation="Horizontal">
<TextBlock>Left</TextBlock>
<Button Width="30" HorizontalAlignment="Right">Right<Button>
</StackPanel>
在上面的代码片段中,我希望按钮停靠在StackPanel的右侧。
注意:我需要用StackPanel来完成它,而不是网格等。
发布于 2012-06-24 01:38:12
Yo可以将Stack panel
的FlowDirection
设置为RightToLeft
,然后所有的项都会靠右对齐。
发布于 2017-01-05 16:12:46
使用DockPanel不能让它完全按照我想要的方式工作,而且颠倒StackPanel的流向是很麻烦的。使用网格不是一个选择,因为其中的项目可能在运行时被隐藏,因此我不知道设计时的总列数。我能想到的最好、最简单的解决方案是:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<!-- Right aligned controls go here -->
</StackPanel>
</Grid>
这将导致StackPanel中的控件在设计和运行时都与可用空间的右侧对齐,而与控件的数量无关。耶!:)
发布于 2017-10-20 23:51:10
这对我来说非常有效。只要把按钮放在第一位,因为你从右边开始。如果FlowDirection成为一个问题,只需在它周围添加一个StackPanel,并为该部分指定FlowDirection="LeftToRight“。或者简单地为相关控件指定FlowDirection="LeftToRight“。
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" FlowDirection="RightToLeft">
<Button Width="40" HorizontalAlignment="Right" Margin="3">Right</Button>
<TextBlock Margin="5">Left</TextBlock>
<StackPanel FlowDirection="LeftToRight">
<my:DatePicker Height="24" Name="DatePicker1" Width="113" xmlns:my="http://schemas.microsoft.com/wpf/2008/toolkit" />
</StackPanel>
<my:DatePicker FlowDirection="LeftToRight" Height="24" Name="DatePicker1" Width="113" xmlns:my="http://schemas.microsoft.com/wpf/2008/toolkit" />
</StackPanel>
https://stackoverflow.com/questions/2023201
复制相似问题