wpf - 在 listItem wpf 中将按钮右对齐

标签 wpf xaml alignment

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

DockPanel:

DockPanel.Dock="右"

Horizo​​ntalAlignment="右"

Horizo​​ntalContentAlignment="右"

Horizo​​ntalConteltAlignment="拉伸(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.:虽然我知道其他几个帖子也有同样问题的人,但到目前为止,他们接受的答案对我的情况没有任何帮助。

最佳答案

ListViewHorizo​​ntalContentAlignment 属性设置为 Stretch。这将拉伸(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>

关于wpf - 在 listItem wpf 中将按钮右对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32100599/

相关文章:

.net - 强制 WPF 滚动条仅落在整数值上

wpf - 如何设置从 DependencyObject 派生的类型的 DependencyProperty 的默认值

c# - 文本框中仅允许字母数字

wpf - xaml "local:"是什么?

wpf - 如何将ComboBox的内容垂直居中?

c# - 当图像画笔用作背景时,如何从 WPF 重复按钮中删除边框和效果

c# - 未调用行为的 OnDetaching 函数

ios - Textfield 中的文本从 TextField IOS 的中间开始

python - vim - 对齐函数参数

position - 如何为 <span> 中的第一个字母制作边框半径并对齐它