与设备无关的单位(Device-independent unit)
来源:互联网 发布:steam充值卡 淘宝 编辑:程序博客网 时间:2024/04/30 04:38
WPF中,关于长宽和位置的单位(如Width,Height等)是很奇怪的,它不是普通的像素(pixel),这个单位被称为与设备无关的单位(Device-independent unit)或“设备无关像素”(device-independent pixel),“逻辑像素”(logical pixel),其实,这一个单位,也像素是一点关系都没有的。这个单位是WPF对度量的抽象,与设置无关的。因为未来显示设置可能很大,而使用pixel可以会有很大的变化或不太好度量。
Width=96,它的单位是1/96英寸,实际上是设置Width为1英寸。那么,1英寸是显示多少像素呢?最终,还是要使用像素来度量的,显示器支持的是像素。可以这样查看:桌面右键-属性-设置-高级-常规-DPI设置,正常尺寸(96DPI)表示,每英寸96像素。如果你重新设置这个属性为120DPI,则是一英寸120像素,Width=96表示,120个像素。
这样,WPF中,长度和位置的单位与设置就没什么关系了,它经过计算系统对DPI的设置,最后可以转化为像素。
WPF中长宽和位置
可以这样设置:
Width=96
Height=96
也可以这样设置:
Width=100*Math.PI;
Height=100*Math.E;
这都是可以的,设定这两个property时,可以使用整数,也可以使用双精度的浮点型,Width和Height在默认的情况下是没有定义的,它的值是NaN,相当于Not a Number,这个字符在VB6脚本中也会出现的。要取得窗口的尺寸,不可以使用Width和Height的属性,而可以改用下面两个只读的属性ActualWidth和ActualHeight。窗口创建时,这两个属性的值都可能是0,而只有在窗口出现在屏幕上时,这两个属性才会生效。
当Width和Height都设定得很小时,窗口至少也会出现标题的部分,这是因为窗口有最小尺寸的设置,SystemParameters.MinimumWindowWidth和
SystemParameters.MinimumWindowHeight这两个只读属性就是尺寸的最小的大小。
Width=96,它的单位是1/96英寸,实际上是设置Width为1英寸。那么,1英寸是显示多少像素呢?最终,还是要使用像素来度量的,显示器支持的是像素。可以这样查看:桌面右键-属性-设置-高级-常规-DPI设置,正常尺寸(96DPI)表示,每英寸96像素。如果你重新设置这个属性为120DPI,则是一英寸120像素,Width=96表示,120个像素。
这样,WPF中,长度和位置的单位与设置就没什么关系了,它经过计算系统对DPI的设置,最后可以转化为像素。
- 与设备无关的单位(Device-independent unit)
- DIB(Device-Independent Bitmap) 设备无关位图
- device-independent bitmap (DIB) 设备无关位图
- WPF 与设备无关的单位
- DIB(Device-Independent Bitmap,即设备无关位图)小知识
- 第一节:设备无关位图DIB(Device-Independent Bitmap)
- 讨论WPF单位的设备无关性
- Effective STL:Item2 当心与容器无关(container-independent)的代码这个错觉
- 与设备无关的位图(DIB)
- 与设备无关的位图(DIB)
- [转]WPF单位真的与分辨率无关吗?
- WPF单位真的与分辨率无关吗?
- WPF单位真的与分辨率无关吗?
- 与像素无关的dp单位与像素单位px之间的转换
- OIT(Order-independent Transparent)顺序无关的透明
- 2.2.3 Order-Independent Transparency (about order-independent blending) 顺序无关透明度(关于顺序无关的混合)
- 创建与设备无关的位图画刷
- 与设备无关的位图一、DIB 文件格式
- centos 安装 STREAMING h264 视频的流播放 关于如何配置APACHE的STREAMING播放MP4的视频.
- Linux下安装TSM
- 看到的一篇文章 觉得不错 转载....
- JSTL 介绍
- RAID控制器
- 与设备无关的单位(Device-independent unit)
- Android开发者指南-摄像头-Camera 译文
- 报表开发工具Stimulsoft Reports教程整理-Business Objects的使用与导出
- oracle 01034 oracle not available 027101
- RAID使用的基本思想
- 黑马程序员_java面向对象
- UNIX环境高级编程(第2版)第11-17章
- 分布式系统介绍(持续更新)
- Java序列化