WPF学习01——分辨率的无关性

  理想情况下,应用程序应用更高的像素密度显示更多的细节:一个高分辨率的显示器可以显示相同大小的工具栏图标,但使用更多的像素显示更清晰的图形。

从而可以保持相同的基本布局但增加了清晰度和细节。WPF根据系统DPI设置进行缩放,而不是根据物理显示设备的DPI进行缩放来实现上述效果。

  WPF单位

  WPF使用设备无关单位(Device-Independent Unit)进行度量,一个设备无关单位被定义为1/96英寸。例如:使用WPF创建一个尺寸为96×96单位的按钮,如果使用标准的Windows DPI(96dpi)设置,

每个设备无关单位实际上对应一个物理像素。

  [物理单位尺寸]=[设备无关单位尺寸]×[系统DPI]

         =1/96英寸 × 96dpi

         = 1 像素

  本质上,WPF假定使用96个像素构成1英寸,因为这是Windows操作系统通过操作系统DPI设置告诉WPF的。

  系统DPI

  WPF本身支持系统DPI设置,例如:如果系统将DPI设置改为120dpi,WPF假定它需要120像素来填满1英寸的空间,WPF使用以下公式计算如何将逻辑单位转换为物理设备像素:

  [物理单位尺寸]=[设备无关单位]×[系统DPI]

         =1/96英寸 × 120dpi

         1.25像素

  换句话说,将系统DPI设置为120dpi时,WPF渲染引擎假定一个设备无关单位等于1.25个像素。

  位图和矢量图形

   如果准备在应用程序中包含图像,可能会出现问题。例如在传统的windows应用程序中,工具栏命令按钮使用非常小的位图,wpf应用程序中会根据系统DPI进行放大缩小时,位图

可能会出现伪影。所以,设计WPF用户界面时,即使是最小的图标,也通常使用矢量图形来实现。当然,相对于绘制一幅位图,绘制矢量图需要消耗更长的时间,但WPF包含减少开销的

优化措施,以确保性能处于合理的范围内。

转载于:https://www.cnblogs.com/SFAN/archive/2012/10/26/2741891.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值