Windows mobile自动调整面板大小

本文关键字:调整 mobile Windows | 更新日期: 2023-09-27 18:01:48

我有一个应用程序可以在两个不同的设备上运行-一个屏幕尺寸为240x320,另一个屏幕尺寸为480x640。

对于除一个以外的所有表单,VS生成的代码都很好:

this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.AutoScroll = true;

对于一个表单,我正在捕获签名。我是通过一个带有图形处理器的面板来实现的;捕获鼠标向下和移动事件;这将生成一个向量点列表,我可以用它来绘制直线。

在较小分辨率的屏幕上,这很好。在高分辨率下,我无法显示我的线条。我想这是因为面板的尺寸超出了窗口的尺寸。

创建的表单尺寸为240 * 268;一个标准的大小,我想-我没有手动设置它,VS为我做这个。

为了使面板在高分辨率设备上的正确位置,坐标为3,290;290是268的倒数。另外,面板的宽度是448,比240大一些。

我正在使用。net 2.0(以后不能使用)。我想我需要调整窗体的大小,使其更大,但我确实想保持现有的窗体上的其他控件的大小调整。

我不知道该怎么做

Windows mobile自动调整面板大小

使表单dock填充,然后使用Anchor属性来确保表单内的控件按预期调整大小。

如果你想自定义一个单独的控件如何调整大小,那么不要在它上面设置锚属性,而是处理Resize事件并在代码中执行自定义调整大小/重新定位。

private void form_Resize(object sender, EventArgs e)
{
    // Center the control without changing width. Other controls are anchored.
    this.control.Left = (this.Width - this.control.Width) / 2;
}

我写下这个答案是为了帮助那些将来可能有类似问题的人。保罗给我指出了正确的方向,但我发现根本原因是别的。

我的PDA项目使用的是"FormFactor WindowsMobile 6 Classic",默认大小为240 x 268。

将此更改为"Windows Mobile 6 Professional VGA"会创建一个更大的窗体。

这使我能够正确地定位更大的尺寸;然后AutoScaleMode为DPI;手动调整面板的大小可以使它更小。

IE,从大到小很容易;