【问题标题】:Column width of a DataGrid in Windows Mobile Application (Motorola MC55)Windows Mobile 应用程序中 DataGrid 的列宽 (Motorola MC55)
【发布时间】:2016-12-07 21:22:57
【问题描述】:

我尝试为将在 Motorola MC55 上运行的 Windows Mobile 应用程序调整 C# 中 DataGrid 的列宽。

我使用以下代码来做到这一点:

dataGrid1.TableStyles.Clear();
DataGridTableStyle tableStyle = new DataGridTableStyle();
tableStyle.MappingName = t.TableName;
foreach (DataColumn item in t.Columns)
{
    DataGridTextBoxColumn tbcName = new DataGridTextBoxColumn();
    tbcName.Width = 100;
    tbcName.MappingName = item.ColumnName;
    tbcName.HeaderText = item.ColumnName;
    tableStyle.GridColumnStyles.Add(tbcName);
 }
 dataGrid1.TableStyles.Add(tableStyle);

这在 Windows Mobile 6.5.3 上运行良好。专业模拟器。不幸的是,它不适用于摩托罗拉 MC55。

在 MC55 上,与我取消注释上面显示的代码时相比,列宽甚至更小。

您能帮我在 MC55 上完成这项工作吗?

【问题讨论】:

    标签: c# datagrid width windows-mobile


    【解决方案1】:

    我发现摩托罗拉 MC55 的屏幕尺寸与模拟器的屏幕尺寸不同。因此,我添加/更改了以下几行:

    int screenWidth = Screen.PrimaryScreen.Bounds.Width;
    int columnWidth = (screenWidth / 3) - (screenWidth / 16);
    // divided by 3 because of 3 columns
    // divided by 16 was a good fit to display the scrollbar
    DataGridTextBoxColumn tbcName = new DataGridTextBoxColumn();
    //tbcName.Width = 100;
    tbcName.Width = columnWidth;
    

    无论如何,我不明白为什么问题只出现在这些列中。我总是用绝对值来指定许多其他字段的大小。

    【讨论】:

    • 显示的宽度还取决于屏幕分辨率。您可能有一个 480x640 的设备屏幕,但具有 192dpi 或 96dpi。像素不是像素。大多数 CF 项目设置为 AutoScaleMode=dpi(每英寸点数)。
    猜你喜欢
    • 2010-11-06
    • 2014-03-12
    • 2011-01-11
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多