我正在尝试使用框最右侧的删除按钮创建一个listview项。按钮始终位于文本的右侧,但我希望它“卡在”控件的右侧。我尝试过以下方法:
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。:虽然我知道其他几个帖子都是由有同样问题的人做的,但到目前为止他们所接受的答案都没有帮助我的情况。
答案 0 :(得分:1)
将ListView
的{{1}}媒体资源设为HorizontalContentAlignment
。这会拉伸子元素以填充ListView的已分配空间:
Stretch
然后使用您的第一个网格方法,但交换<ListView HorizontalContentAlignment="Stretch" ... >
。
按钮的列宽设置为ColumnDefinition
,以便将列的大小调整为其内容(按钮)。并且文本的一个设置为Auto
,以便尽可能多地占用空间。因此,在为第二列中的按钮分配固定空间后,第一列将获得所有剩余空间。
*