【发布时间】:2012-07-09 01:09:52
【问题描述】:
我有一个 WPF ListView 表,默认将列标题调整为每个标题文本的宽度。这不会均匀地填满整个表格;我在左边有一堆挤压的柱子,在右边有一个空置的空间。
我希望能够将列的大小调整为与列文本、标题或行中最长项成比例的宽度。我该怎么做?
我目前正在做的最初是使用以下代码(其中 SearchResultsTable 是 ListView)将标题调整为与标题文本成比例的宽度:
private void Resize()
{
var width = SearchResultsTable.ActualWidth;
var gridView = SearchResultsTable.View as GridView;
var columns = new GridViewColumnCollection();
if (gridView != null)
{
columns = gridView.Columns;
}
var initialColumnWidths = columns.Sum(column => column.ActualWidth);
var scale = width / initialColumnWidths;
foreach (var column in columns)
{
column.Width = column.ActualWidth * scale;
}
}
但是,这只会根据标题文本宽度调整大小;我不知道如何获得标题和行的最大宽度。有什么建议吗?
【问题讨论】: