首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# WPF列在ListView中的对齐方式

C# WPF列在ListView中的对齐方式
EN

Stack Overflow用户
提问于 2021-02-01 08:50:58
回答 1查看 132关注 0票数 1

在我的应用程序中,我有一个ListView,其中定义它的ItemTemplate如下:

代码语言:javascript
复制
<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,因为如果不是,这将显示:

)

我希望由以下标准来决定这三栏的大小:

  • 列0:最大图像
  • 列1:最大文本框文本
  • 列2:填充剩余空间(因为这也是用户输入字段,我无法事先知道该输入是否类似于0或1438233482379472 )

编辑2:我忘记指定第2列中的文本框大小相同,填充可用空间。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-01 09:59:20

必须在父元素中启用SharedSize功能。

代码语言:javascript
复制
<ListView Grid.IsSharedSizeScope="True">
    <ListView.ItemTemplate>
        <DataTemplate>
            ...
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65989622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档