在我的应用程序中,我有一个ListView,其中定义它的ItemTemplate如下:
<ListView>
<ListView.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch" Background="Aqua">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="ParameterIconSize" />
<ColumnDefinition Width="Auto" SharedSizeGroup="ParameterDescriptionSize" />
<ColumnDefinition Width="Auto" SharedSizeGroup="ParameterValueSize" />
</Grid.ColumnDefinitions>
<Image
Grid.Column="0"
MaxHeight="50"
Margin="5"
Grid.IsSharedSizeScope="True"
Source="{Binding Path=Icon}" />
<TextBlock
Grid.Column="1"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Grid.IsSharedSizeScope="True"
Text="{Binding Path=Parameter.NameKey}" />
<TextBox
Grid.Column="2"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
VerticalContentAlignment="Center"
Grid.IsSharedSizeScope="True"
Text="{Binding Path=Parameter.Value}" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>这样的代码产生了这样的输出:

正如你所看到的,几乎每一列都有一个不同的宽度,而我想使它们均匀。我认为和SharedSizeGroup一起去是正确的方法,但很明显我错过了一些东西.
(PS:我必须在Image中设置maxHeight,因为如果不是,这将显示:

)
我希望由以下标准来决定这三栏的大小:
编辑2:我忘记指定第2列中的文本框大小相同,填充可用空间。
发布于 2021-02-01 09:59:20
必须在父元素中启用SharedSize功能。
<ListView Grid.IsSharedSizeScope="True">
<ListView.ItemTemplate>
<DataTemplate>
...
</DataTemplate>
</ListView.ItemTemplate>
</ListView>https://stackoverflow.com/questions/65989622
复制相似问题