经典图书 现在电脑高分辨率显示屏越来越流行了,目前市面上笔记本电脑很多均配置2K屏幕。在这样高分辨率的屏幕下使用Solidworks软件,会发现一些问题,如:命令图标变小、线宽变小、文字窗口变小等情况,操作很不方便。网上有一些临时措施,但体验不是很好,只能等待在新版本中能做更好的兼容。 自定义的插件中如果使用Winform做交互窗口,同样也会存在一些问题,如:窗口变小,内部控件重叠等现象。插件体验就太差。总结了几种解决方式:
一、 设置SLDWORKS.EXE属性 按照网上的解决办法,设置启动文件SLDWORKS.EXE的属性,在高DPI缩放替代中选择系统或系统(增强)选项,这样插件的窗口也同软件的窗口同步放大。这种方式实现比较简单,存在主要的问题是会造成界面中的文字、图像等内容出现模糊的现象,这是应为系统直接按照比例缩放,而比例不一定是整数,会出现像素的变化(表达的不专业,感兴趣的可以自己去了解)。
二、 缩放Winform控件尺寸
在网上查找了相关方法,找到了一种有效果的方式,其原理是首先获取当前屏幕的分辨率,然后计算缩放比例,最后将插件中Winform窗口控件按照缩放比例重新设置,最终在呈现出来。但也需要注意:窗体中尽量利用容器控件的特性,让显示的控件最好不设置具体的像素值(如大小、位置等)。以下是实现的具体代码片段:
这种方法虽然实现了插件窗口在高分屏下的正常显示,但是从窗口加载顺序来看,相当于先按照默认参数创建控件,让后再缩放控件,这样造成窗口打开时间会边长(窗口越复杂越明显,体验不好),并且代码也会更加复杂。
三、 使用WPF创建插件窗口 根据Microsoft官网的介绍,使用 Windows PresentationFoundation (WPF)创建窗口可以解决此问题。具体说明可以自己详细查看官网介绍。 通过将自己的插件MyTools迁移到WPF中,比较顺利的实现了。效果如下:
独立程序界面
插件中的帮助窗口
插件中导出DWG文件时窗口界面
以上三种方式从效果体验来看,WPF窗体是最理想的。
|