【问题标题】:align a button to the right in a listItem wpf在listItem wpf中将按钮向右对齐
【发布时间】:2015-11-13 01:17:43
【问题描述】:

我正在尝试在框的最右侧创建一个带有删除按钮的列表视图项。该按钮始终位于文本的右侧,但我希望它“卡”在控件的右侧。我尝试了以下方法:

DockPanel

DockPanel.Dock="Right"

HorizontalAlignment="Right"

HorizontalContentAlignment="Right"

HorizontalConteltAlignment="Stretch"

(不是最后两个)

并在停靠面板中添加一个额外的区域而不指定停靠位置

网格

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto"/>
    <ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto"/>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>

等等。在任何一种情况下,唯一改变按钮位置的就是改变按钮的左边距。但是容器是可调整大小的,所以我真的希望按钮保持在控件的右侧。有谁知道为什么水平对齐、水平内容对齐、额外的列或不同的宽度大小似乎都不会影响按钮的位置?我能做什么?

P.S.:虽然我知道其他几个帖子是由有同样问题的人发的,但到目前为止,他们接受的答案都没有帮助我的情况。

【问题讨论】:

  • 您是否尝试过将ListView的HorizontalContentAlignment设置为Stretch,并使用您的第一种Grid方法,但翻转ColumnDefinition,即&lt;ColumnDefinition Width="*"/&gt;&lt;ColumnDefinition Width="Auto"/&gt;
  • 哇哦。是的,除了我在每个项目中而不是在 ListView 本身中设置 Horizo​​ntalContentAlignment 之外,我已经完成了。感谢您指出这一点
  • 是的,对于列表视图项目。如果您想将其发布为答案,我会接受它
  • 好的。我已将其发布为答案并添加了一些解释。也许它对遇到相同情况的其他人有用。

标签: wpf xaml alignment


【解决方案1】:

ListViewHorizontalContentAlignment 属性设置为Stretch。这会拉伸子元素以填充 ListView 的分配空间:

<ListView HorizontalContentAlignment="Stretch" ... >

然后使用您的第一个 Grid 方法,但交换 ColumnDefinition。 按钮的列宽设置为Auto,以便将列调整为其内容(按钮)的大小。文本设置为*,以便尽可能多地占用空间。因此,在为第 2 列中的按钮分配 固定 空间后,第 1 列将获得所有剩余空间。

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="*"/> <!-- for the text -->
    <ColumnDefinition Width="Auto"/> <!-- for the delete button -->
</Grid.ColumnDefinitions>

【讨论】:

    猜你喜欢
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 2019-01-16
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多