如何使工具栏图标按dpi缩放而不模糊?

时间:2015-07-01 09:58:40

标签: .net winforms

我的WinForms应用程序有一个工具栏。工具栏按钮的类型为ToolStripButton。图标图像为16x16 png,作为资源安装。

this.BtnNew.Image = Resources.NewDocument;
this.BtnNew.ImageScaling = ToolStripItemImageScaling.None;

在大多数计算机上看起来都很好,但是在具有高dpi的计算机上,工具栏按钮与应用程序的其余部分相比显得比较小(文本按比例放大)。我希望工具栏图标也可以缩放。

我试过

this.BtnNew.ImageScaling = ToolStripItemImageScaling.SizeToFit;

这会正确缩放图标,但它看起来很模糊,当然因为原始图像只有16x16像素。

如何根据dpi正确缩放图标而不模糊?使用64x64 png会更好吗,或者当它们按比例缩小时,我会得到一种不同的模糊吗?我可以使用svg图像吗?

1 个答案:

答案 0 :(得分:1)

向下缩放看起来比扩展看起来更好。通常,对于图标图像,将创建预定义的大小。为简单起见,假设宽度和高度相等。因此图像大小为{16,24,32,48,64,128,256}。使用单个64x64将需要测试以查看结果是否可接受。

FB.ui( { method: 'feed', link: 'myurl', caption: 'mycaption', display:'popup', title: 'title, picture:'myimg.png', description:'mydescription, name:'myname' }, // callback function(response) { if (response && !response.error_code) { if(waitedTooLong == false) { successfullLogin(socket); } console.log("shared"); } else { successfullLogin(socket); console.log("not shared"); } } )}; 的高度将由其ToolStripButton确定,如果该按钮显示一些文字。如果没有文字,则仍可以根据FontFont属性计算首选高度。可以动态缩放显示的图像以适合Graphics.Dpi的首选高度。 E.g。

ToolStripItem