WPF的单位 屏幕 分辨率
2014-07-06 20:46
218 查看
WPF程序中的单位是与设备无关的单位,每个单位是1/96英寸,如果电脑的DPI设置为96(每个英寸96个像素),那么此时每个WPF单位对应一个像 素,不过如果电脑的DPI设备为120(每个英寸120个像素),那此时每个WPF单位对应应该是120/96=1.25个像素。一般在程序中我们常常需要得到当前屏幕的宽和高,常见做法有:
1. System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width
System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height
这两个方法可以返回当前屏幕选择的分辨率,该分辨率是以像素为单位。
在DPI为96的情况下我们可以利用它们来做一些控件的定位,因为此时 WPF单位对应一个像素;而当DPI非96的情况下,用该分辨率来做定位就会发现误差了,因此此时每个WPF单位并不是对应于一个像素
2. SystemParameters.PrimaryScreenWidth
SystemParameters.PrimaryScreenHeight
这两个方法可以返回当前屏幕的宽和高,它是与设备无关的单位(1/96英寸),因此用它来做控件的定位,在DPI改变的情况下,也不会发生定位上的误差
3. SystemParameters.WorkArea.Size.Width
SystemParameters.WorkArea.Size.Height
这两个方法可以返回当前屏幕工作区的宽和高(除去任务栏),它也是与设备无关的单位,通常我们可以结合2和3来得到任务栏的高度
1. System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width
System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height
这两个方法可以返回当前屏幕选择的分辨率,该分辨率是以像素为单位。
在DPI为96的情况下我们可以利用它们来做一些控件的定位,因为此时 WPF单位对应一个像素;而当DPI非96的情况下,用该分辨率来做定位就会发现误差了,因此此时每个WPF单位并不是对应于一个像素
2. SystemParameters.PrimaryScreenWidth
SystemParameters.PrimaryScreenHeight
这两个方法可以返回当前屏幕的宽和高,它是与设备无关的单位(1/96英寸),因此用它来做控件的定位,在DPI改变的情况下,也不会发生定位上的误差
3. SystemParameters.WorkArea.Size.Width
SystemParameters.WorkArea.Size.Height
这两个方法可以返回当前屏幕工作区的宽和高(除去任务栏),它也是与设备无关的单位,通常我们可以结合2和3来得到任务栏的高度
相关文章推荐
- WPF的单位 屏幕 分辨率
- WPF的单位 屏幕 分辨率(转载)
- Android的单位px,pt,dp,sp总结和获取屏幕分辨率
- Android的单位及屏幕分辨率
- Android的长度单位及屏幕分辨率
- WPF 获取屏幕分辨率(获取最大宽高)
- WPF单位真的与分辨率无关吗?
- 屏幕自适应分辨率与u3d的像素px单位使用
- Android常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )尺寸单位转换和屏幕适配相关
- Android的单位及屏幕分辨率
- Android的单位及屏幕分辨率
- Android的单位及屏幕分辨率
- Android上常见度量单位【xdpi、hdpi、mdpi、ldpi】解读,Android分辨率,Android多机型适配,Android屏幕分类,Android像素单位
- WPF 获取屏幕分辨率(获取最大宽高)
- 手机屏幕分辨率单位
- WPF 获取屏幕长宽(分辨率)
- Android的单位及屏幕分辨率
- WPF单位真的与分辨率无关吗?
- 手机屏幕分辨率单位
- WPF 获取屏幕长宽(分辨率)