我正在咨询一个大型 .Net winforms 项目,该项目必须能够在“触摸”模式下运行,以便可以使用触摸屏界面进行操作。应用程序架构已经包含用于放大标准 .Net 表单和控件上的字体/显示的缩放逻辑,并且自定义控件也处理缩放。
问题是应用程序使用 OpenFileDialog 和 SaveFileDialog,它们不使用相同的逻辑进行缩放(本质上是在递归地调整控件和表单上的 Font 属性的大小)。我相信这些对话框本质上是本机 Windows 对话框,而 OpenFileDialog 类实际上只是封装类,它们公开了一个标准的 .Net 接口以与它们交互。
一种解决方案可能是为这些事情实现自定义对话框,但这可能会有些广泛的工作。我们真正想做的是以某种方式缩放这个特定对话框的字体大小(也许通过一些 P/Invoke 窗口句柄魔术)?
我知道启用触控的一种解决方案是调整 Windows 的字体大小,但这个想法并没有真正受到这家公司的欢迎,他们宁愿扩展应用程序本身,而让操作系统的其余部分保持不变。
那么,关于如何将这些对话框缩放为更大字体的任何经验或想法?还是我们应该硬着头皮为此创建自定义对话框?