在Windows应用程序中,DataGrid有一个属性AutoSizeColumnsMode,它确定可见列的自动大小模式。
我正在使用.Net Framework 3.5开发Windows Mobile应用程序,DataGrid没有类似的属性。
如何实现类似的功能?
答案 0 :(得分:0)
我没有尝试在单元格值更改时动态更改列的宽度,但我使用此方法从标题设置列宽。您可能需要添加额外的填充以获得最佳结果
private static int MeasureTextWidth(Control c, string text)
{
if (c == null)
{ return -1; }
using (Graphics g = c.CreateGraphics())
{
return (int)Math.Ceiling(g.MeasureString(text, c.Font).Width);
}
}
编辑:额外注意我已尝试通过使用我自己的逻辑覆盖列上的Width属性来为列实现自动宽度功能。不幸的是,似乎DataGridColumn不使用Width属性来获取其宽度。只是因为你正在考虑走这条路。