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(以后不能使用)。我想我需要调整窗体的大小,使其更大,但我确实想保持现有的窗体上的其他控件的大小调整。
我不知道该怎么做
使表单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,从大到小很容易;