美化VS2010在远程桌面/无法启动硬件加速渲染的机器下的字体显示
VS2010全面采用了WPF技术构建,编辑器可以充分利用计算机的硬件图形加速功能,所以如果在编辑器中使用Clear Type字体,显示效果会非常漂亮。但是这个功能只局限于本地计算机,一旦使用远程桌面进行开发,原本漂亮平滑的字体就会变得毛糙。这是因为远程桌面为了性能原因禁止了Clear Type。今天偶尔调节了一下编辑器的缩放功能(左下角那个写着100%的下拉框),发现当放大比例高于一定程度(比如11号字体放大到150%的时候在我的屏幕上很漂亮)时即使没有Clear Type,字体就会又变平滑。但是每次打开一个文件就要调一遍缩放比例让我非常的不爽,我们是程序员,当然要自动化一切可以自动化的东西。Google了一番找到了解决办法,步骤如下:
- 安装VS2010 SDK
- 从GitHub下载DisableMouseWheelZoom项目的代码
- 打开这个工程,然后在代码(只有一个cs/一个class/一个方法,所以别说你找不到哈)中增加一行:textView.ZoomLevel = 150D; //代表放大到150%,如果你不需要禁用鼠标滚轮缩放的话,删掉另外一行。
- 编译,然后安装生成的VSIX
- 重启VS2010,再打开一个文件看看吧,是不是已经自动放大到150%了
另外如果机器的配置不够,启动硬件加速会导致VS2010比更卡,这时也可以用这个办法来调整。
Have fun!
后记:
本来以为一行代码就能搞定的,发现虽然放大了字体,但是旁边的outline却没有一起被放大,我猜测是初始化顺序的问题,在设置ZoomLevel时Outline控件还没有挂接TextView的事件,所以没有响应。用如下代码就能解决:
var op = AsyncOperationManager.CreateOperation(null);
op.PostOperationCompleted(o => {
textView.ZoomLevel = 150D;
}, null);
其实道理也很简单,通过异步Post把修改ZoomLevel的方法放入消息队列等待,让TextView先执行TextViewCreated事件之后的方法,这样就可以正确的初始化outline,再设置ZoomLevel就可以让TextView与Outline一同缩放了。
posted on 2010-04-13 15:03 iceboundrock 阅读(1316) 评论(0) 编辑 收藏 举报