处理方向的更改
要应用这两个布局函数请为窗体的 Resize 事件创建一个事件处理程序在该事件处理程序中新的方向将调用相应的布局函数
private void MainForm_Resize(object sender SystemEventArgs e) { if(ScreenPrimaryScreenBoundsWidth>ScreenPrimaryScreenBoundsHeight) { Landscape(); } else { Portrait(); } }
彻底检验
要测试程序处理方向更改的能力请向 Rotate Screen 函数分配一个硬件按钮您可以在控制面板中的按钮项目下完成该工作选择您希望重新分配的按钮然后选择 Button Assignment 下拉菜单中的 Rotate Screen然后您可以在一个方向下运行您的程序然后使用该按钮即时切换方向
您还可以在控制面板中更改 Screen 属性它位于系统选项卡下
添加高分辨率识别
简介
Windows Mobile Second Edition 软件将自动调整 NET Compact Framework 窗体上的控件的大小以便利用高 dpi 显示在绝大多数情况下这都可以满足需要但是有时需要自定义应用程序响应高 dpi 的方式例如如果应用程序涉及到自定义图形或者要求在单个屏幕上显示大量控件则可以由于支持高 dpi 而获益
注在创建高 dpi 布局时必须小心使用使控件变小的功能较小的控件可能更加难以辨认并且用户很难使用笔针与其进行交互
您可以使用与添加方向识别类似的方法来为高 dpi 显示器创建单独的布局您需要为高 dpi/低 dpi 和横向/纵向这四种组合创建新的函数此外可以扩展 FormResize 事件处理程序以根据需要调用每种组合
注 Visual Studio NET 窗体设计器不会为高 dpi 显示器生成布局代码开发人员必须手动创建相应的代码
完成该工作后必须将可执行文件标记为能够识别 dpi以防止操作系统自动调整控件的大小在使用 resexe 工具编译可执行文件之后可以通过向其添加 Win 资源文件来做到这一点
使用 Resexe
;
将 resexeexe 和 hidpires 放入 Visual Studio NET 的命令行路径中默认情况下这些文件将安装到名为 ResExe Power Toy 的子目录中该子目录位于本文随附示例的安装目录下
;
使用 Visual Studio NET 编译您的应用程序
;
从命令行中使用下面的语法对输出可执行文件运行 resexe
;
resexe c r hidpires [EXE file]
注 如果您要使用 signcode 对您的可执行文件进行签名(例如如果您要面向 Smartphone )则需要在对应用程序进行签名之前使用 resexe如果您在对应用程序进行签名之后使用 resexe则该签名将呈现为无效签名
彻底检验
;
使用 Visual StudioNET 生成输出文件(单击 Build然后单击 Build Solution)
;
对项目的 \obj\Debug 子目录中的可执行文件版本使用 resexe
在 Visual StudioNET 中选择一个VGA模拟器(如图 所示)然后启动调试器
图 在 Visual Studio NET 中选择 VGA 模拟器
小结
要在 NET Compact Framework 中支持方向识别只需创建纵向和横向布局代码尽管大多数 NET Compact Framework 应用程序不需要实现高 dpi 支持但您可以使用类似的方法添加分辨率识别功能
[] []