And*_*y T 32 wpf xaml datagrid width datagridcolumn
使一组DataGrid列具有比例宽度的最佳/正确方法是什么(Width="\*"),但是它们的最小宽度至少是其内容的宽度?目前,如果我使用Width="*",那么列保持完全成比例,但内容如果列太薄,会被裁剪.如果我使用Width="Auto",那么列的大小完全符合它们的内容,但这使它们具有不同的大小.
我想要的实际上是两者的组合,例如Width="\*",MinWidth="Auto"当有额外的宽度时,列将全部空出到相等的宽度,但是当网格变小时,内容永远不会被裁剪.
可悲的是,MinWidth="Auto"不存在,所以我想我需要绑定列的MinWidth属性,但很难弄清楚我将它绑定到什么.
如何告诉WPF "MinWidth="列的最宽内容的宽度?
Tom*_*sup 19
我知道它有点晚了,但我找到了你的问题并编写了一个纯XAML解决方案.
<ColumnDefinition Width="42*" MinWidth="{Binding Path=ActualWidth, ElementName=projectInfoHeader }"/>
Run Code Online (Sandbox Code Playgroud)
凡ElementName指向控制占用了大部分空间.当然这只能用于宽度有限的元素.例如,如果您为a执行此操作,则GroupBox只能调整为较大的宽度,而不会调整为较小的宽度.
如果你有几个值的候选者MinWidth,你需要自己写一个IMultiValueConverter,它接受一个object [],将它解析为浮点数,并返回最大值(如果你只使用它自己而不需要它只有1个linq查询处理转换器的错误使用)
这种方式也支持动态更改MinWidth.
小智 12
设置Width = "Auto"在XAML中.
然后在代码中:
MinWidth = ActualWidth
Width = new GridLength(1, GridUnitType.Star)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47511 次 |
| 最近记录: |