gpt4 book ai didi

WPF - 宽度为 ="*"的 DataGrid 列,但 MinWidth 以适合内容

转载 作者:行者123 更新时间:2023-12-03 08:49:15 28 4
gpt4 key购买 nike

拥有一组 DataGrid 的最佳/正确方法是什么?列具有成比例的宽度( Width="\*"), 但要使其 最小 宽度至少是其内容的宽度?目前,如果我使用 Width="*" ,那么列保持完全成比例,但内容得到如果列变得太薄,则裁剪。如果我使用 Width="Auto" ,那么列的大小将完全适合其内容,但这会使它们的大小都不同。

我真正想要的是两者的结合,比如 Width="\*" , MinWidth="Auto"这样当有额外的宽度时,列将全部间隔到相等的宽度,但是当网格变小时,内容永远不会被裁剪。

可悲的是,MinWidth="Auto"不存在,所以我想我需要绑定(bind)列的MinWidth属性,但很难弄清楚我会将它绑定(bind)到什么。

我如何告诉 WPF "MinWidth="列最宽的内容的宽度?

最佳答案

我知道它有点晚了,但我发现了你的问题并编写了一个纯 XAML 解决方案。

 <ColumnDefinition Width="42*" MinWidth="{Binding Path=ActualWidth, ElementName=projectInfoHeader }"/> 
ElementName指向占据大部分空间的控件。当然,这仅适用于宽度有限的元素。
例如,如果您为 GroupBox 这样做, 比你只能调整到更大的宽度而永远不会调整到更小的宽度。

如果 MinWidth 的值有多个候选项, 你需要给自己写一个 IMultiValueConverter ,它接受一个对象[],将其解析为浮点数,并返回最大值(如果您只自己使用它并且不需要处理转换器的错误使用,它只是 1 个 linq 查询)

这种方式还支持动态更改 MinWidth .

关于WPF - 宽度为 ="*"的 DataGrid 列,但 MinWidth 以适合内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3404067/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com