WPF单位真的与分辨率无关吗?】的更多相关文章

转载自http://www.cnblogs.com/helloj2ee/archive/2009/04/21/1440709.htm WPF从发布之日起,一直将"分辨率无关(resolution independence)"作为其亮点,声称使用WPF制作的用户界面在轻巧的Ultra-Mobile PC的屏幕上和在50英寸的电视机上都能很好地显示.微软之所以称WPF具备"分辨率无关"这一特性,主要是因为WPF的坐标单位设计成为以1/96英寸为一个逻辑像素单位,而不是与…
一.名词解释 WPF(Windows Presentation Foundation),直译为Windows表示基础,是专门用来编写程序表示层的技术和工具. 大部分程序都是多层架构的,一般至少包含三层: 数据层:用于存储数据,多由数据库构成. 业务逻辑层:用于编写现实的业务逻辑. 表示层:负责把数据和流程以界面显示的形式展示给用户看. 相比其他技术,WPF引入了“内置硬件加速”和“分辨率无关”等创新功能. 二.硬件加速 WPF通过DirectX执行所有WPF绘图操作,以便充分利用现代显卡的最新功…
WPF在计算窗口尺寸大小时使用的是系统的DPI设置.WPF窗口以及窗口中所有的元素都是使用设备无关单位度量.一个设备无关单位被定义为1/96英寸. [物理单位尺寸]=[设备无关单位尺寸]*[系统DPI]=1/96英寸*96dpi=1像素. 当系统默认dpi设置为96dpi时,也就是需要96个像素填充1英寸的空间,如果系统dpi设置为120dpi(对于高分分辨率显示器),这时的物理单位尺寸为: [物理单位尺寸]=[设备无关单位尺寸]*[系统DPI]=1/96英寸*120dpi=1.25像素. 也就…
winform 当前的屏幕除任务栏外的工作域大小     this.Width = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width;     this.Height = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height; 当前的屏幕包括任务栏的工作域大小 this.Width=System.Windows.Forms.Screen.PrimaryScre…
WPF单位 WPF窗口以及其中的所有元素都是用与设备无关的单位进行度量.一个与设备无关的单位被定义为1/96英寸.WPF程序统一用下面一个公式来定义物理单位尺寸: [ 物理单位尺寸(像素)] = [ 设备无关尺寸 ]*[ 系统DPI ] 我们知道标准的Windows的系统DPI是 96 dpi,这个时候物理单位就是1像素,一个40*40WPF单位的按钮,就是一个40*40像素的按钮. 但是本质上WPF的显示与显示设备有关,WPF的与设备无关的特性并不是说把WPF放到哪一个设备上显示尺寸都是一样的…
先搞清楚一下几个概念: DPI:dots  per  inch ,每英寸的点数.我们常说的鼠标DPI,是指鼠标移动一英寸的距离滑过的点数:打印DPI,每英寸的长度打印的点数:扫描DPI,每英寸扫描了多少个点.(更多请参考百度百科http://baike.baidu.com/view/49853.htm) 像素:pixel,picute和element的缩写.像素可以简单的理解为DPI里面的点.例如,显示器的分辨率为1024像素*768像素,就是说显示器的横向可显示1024个点(像素),纵向科研可…
问题概述: 1.在Xaml中加入WebBrowser(不论是WPF中的控件,还是Winform中的控件) 2.设置Window Background="Transparent" AllowsTransparency="True" 结果:WebBroser中的内容将不可见. 问题分析: 本人当时一WPF菜鸟,根本无从下手.实乃WPF已广为人知的问题.原因很简单: 1.所谓WPF中的WebBrowser控件实为利用MS WebBrowser 经过WPF封装,其实质和Wi…
原文:WPF的单位 屏幕 分辨率 WPF程序中的单位是与设备无关的单位,每个单位是1/96英寸,如果电脑的DPI设置为96(每个英寸96个像素),那么此时每个WPF单位对应一个像素,不过如果电脑的DPI设备为120(每个英寸120个像素),那此时每个WPF单位对应应该是120/96=1.25个像素 一般在程序中我们常常需要得到当前屏幕的宽和高,常见做法有: 1.System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width System.Window…
WPF从发布之日起,一直将“分辨率无关(resolution independence)”作为其亮点,声称使用WPF制作的用户界面在轻巧的Ultra-Mobile PC的屏幕上和在50英寸的电视机上都能很好地显示.微软之所以称WPF具备“分辨率无关”这一特性,主要是因为WPF的坐标单位设计成为以1/96英寸为一个逻辑像素单位,而不是与设备相关的像素单位. 但是微软本身对WPF“分辨率无关”这一特性没有作更多的具体解释,导致用户会产生很多误解. 误解之一 改变显示器的分辨率设置,同一个WPF的用户…
原文:论wpf的设备无关性 - 简书 WPF从发布之日起,一直将“分辨率无关(resolution independence)”作为其亮点,声称使用WPF制作的用户界面在轻巧的Ultra-Mobile PC的屏幕上和在50英寸的电视机上都能很好地显示.微软之所以称WPF具备“分辨率无关”这一特性,主要是因为WPF的坐标单位设计成为以1/96英寸为一个逻辑像素单位,而不是与设备相关的像素单位. 但是微软本身对WPF“分辨率无关”这一特性没有作更多的具体解释,导致用户会产生很多误解. 误解之一 改变…
对于测试数字成像设备非常重要的参数是分辨率.但有不同的方式来表达数码相机的分辨率,有时令人困惑.下面介绍的是是最常见的单位. 百万像素 “这台相机有1000万像素的分辨率”是我们经常在广告上看到的数据,但是从技术上看,这是错误的.一个1000万像素的相机有一千万像素,可以采集镜头投射到传感器上的图像.但这并不意味着,每个像素真的拥有关于图像内容的有用信息.所以像素的数量与分辨率有些相关,但是没有定义它.一个好的1000万像素摄像机与12或14万像素摄像机相比,具有相同的分辨率并不罕见. LP /…
在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师,对C#和WPF有着极深的热情.最为出色的是他维护了两个博客:2,000Things You Should Know About C# 和 2,000 Things You Should Know About WPF .听到博客名字就懂这个人有多伟大了吧.他以类似微博式的150字简短语言来每天更新一条WPF和C#重要又容易被遗忘的知识.Follow他的博客也有一段日子了,很希望能够分享给大家. 本系列我不仅会翻译…
一.引言 关于WPF早在一年前就已经看过<深入浅出WPF>这本书,当时看完之后由于没有做笔记,以至于我现在又重新捡起来并记录下学习的过程,本系列将是一个WPF快速入门系列,主要介绍WPF中主要的几个不同的特性,如依赖属性.命令.路由事件等. 在正式介绍之前,我还想分享下为什么我又要重新捡起来WPF呢?之前没有记录下来的原来主要是打算走互联网方向的,后面发现互联网方向经常加班,又累,有时候忙的连自己写了什么都不知道的,所以后面机缘巧合地进了一家外企,在外企不像互联网行业那样,比较清楚,有更多的时…
WPF Step By Step 系列 - 开篇 公司最近要去我去整理出一个完整的WPF培训的教程,我刚好将自己学习WPF的过程和经验总结整理成笔记的方式来讲述,这里就不按照书上面的东西来说了,书本上一般都是按部就班,深入浅出.我这里主要是以实战和具体的代码为准来讲述. 目前使用WPF的时间不算长,大概有2年多,比园子里很多的大师,还是会差很多.现在才刚刚算是对WPF基本的应用时掌握了,但是距离UI设计方面,还是有很大的欠缺.由于本人不太擅长美感的东西. WPF参考书推荐 下面先整理下,本人主要…
WPF程序中的单位是与设备无关的单位,每个单位是1/96英寸,如果电脑的DPI设置为96(每个英寸96个像素),那么此时每个WPF单位对应一个像素,不过如果电脑的DPI设备为120(每个英寸120个像素),那此时每个WPF单位对应应该是120/96=1.25个像素 一般在程序中我们常常需要得到当前屏幕的宽和高,常见做法有: 1.这两个方法可以返回当前屏幕选择的分辨率,该分辨率是以像素为单位,在DPI为96的情况下我们可以利用它们来做一些控件的定位,因为此时WPF单位对应一个像素,而当DPI非96…
Windows Presentation Foundation 窗口展示框架 WPF. 与winform界面程序比较,我认为最大的区别是‘与分辨率无关’这个特性. 传统winform程序在低分辨率的电脑上开发,在高分辨率的显示器(显示器的尺寸不变)中显示,会发现原有的程序尺寸缩小了. 就好比100米物理距离,有50个等距点,每个点是一个像素点,winform设定50个像素点描绘了100米物理距离. 当100米变为100个等距点后,winform依然按设定的50个像素点描绘100米,在高DPI(单…
XAML与XML类似,就是XML延伸过来的.为了更好的表达一些功能,WPF对XML做了扩展,有些功能是WPF在后台悄悄的替你做了.有时候,虽然实现了某个功能,但是对实现原理还是很茫然.今天就讲讲XAML中赋值操作. 1 通过类型转换赋值 赋值是最简单最常见的操作,举例: <Button Width="> </Button> 这里把Width值赋值为200:用代码实现赋值,则为Button.With = 200; 这种赋值操作很直接,大家都能理解.但是仔细想想,感觉有点不对…
关于布局的规则 控件的布局应该由容器来决定,而不是通过自身使用margin之类的东西来控制位置 避免为控件定义明确的尺寸,但应该限定一个可接受的最大及最小尺寸 不要将界面元素设置成与屏幕坐标相关 容器应将有效控件共享给其子控件 WPF不使用物理像素设置尺寸,而使用设备无关单位,该设备无关单位被定义为1/96英寸,即一英寸96个像素,1英寸=2.54cm,对于96DPI的显示设备,长度单位是1格像素,对于120DPI,单位长度是1.25像素,但长度不变都是1/(96*2.54) cm,常说的分辨率…
如果你选择WPF,多半原因是因为折服于它那震撼性的用户体验.纵观WPF整个知识体系,其内容并不复杂,但却比较细碎,不易理清.以下内容是对WPF部分内容的简单概括,希望读者能够对WPF框架有个大体认识. 一 常用类型与继承树 WPF的常用类型如下: 二 分辨率无关性 WPF使用设备无关单位度量.一个设备无关单位被定义为1/96英寸.WPF使用下面的公式进行计算: [物理单位尺寸]=[设备无关单位尺寸]*[系统DPI] 三 WPF缺少的功能 与Windows窗体相比 缺少类似以下功能或控件:Mask…
原文 关于WPF你应该知道的2000件事 以下列出了迄今为止为WPF博客所知的2,000件事所创建的所有帖子. 帖子总数= 1,201 动画 #7 - 基于属性的动画 #686 - 使用动画制作图像脉冲 #777 - 动画变换 #778 - 动画缩放变换 #779 - 动画旋转变换 #1,164 - 使用动画弹回控件 基本 #1 - 什么是WPF? #2 - 渲染层 #5 - 矢量图形和分辨率独立 #6 - WPF布局 #9 - 样式 #10 - 控制模板 #11 - 命令 #12 - 标记和代…
WPF参考书推荐 下面先整理下,本人主要学习的WPF参考书: 1.WPF编程宝典(C#2010) 该书:(必读) 心得体会:读完该书后,你对WPF的基础和基本控件的使用,包括WPF的编程模型,相比Winform的特性和如何开始在实际的项目中下手,都有了基本的认知.里面还介绍了控件模板的使用,WPF必须掌握模板.里面包含了WPF的方方面面,不过,深度还有待继续挖掘. 2.深入浅出WPF 该书 (入门必读) 心得体会:该书写的浅显易懂,特别适合对WPF不了解,又渴望快速对WPF上手的书,符合中国人的…
内容控件(content control)是更特殊的控件类型,它们可包含并显示一块内容.从技术角度看,内容控件时可以包含单个嵌套元素的控件.与布局容器不同的是,内容控件只能包含一个子元素,而布局容器主要愿意可以包含任意多个牵头元素. 正如前面所介绍,所有WPF布局容器都继承自抽象类Panel,该类提供了对包含多个元素的支持.类似地,所有内容控件都继承自抽象类ContentControl.下图显示了ContentControl类的层次结构. 图 ContentControl类的层次结构 如上图所示…
在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师,对C#和WPF有着极深的热情.最为出色的是他维护了两个博客:2,000Things You Should Know About C# 和 2,000 Things You Should Know About WPF .他以类似微博式的150字简短语言来每天更新一条WPF和C#重要又容易被遗忘的知识.Follow他的博客也有一段日子了,很希望能够分享给大家. 本系列我不仅会翻译他的每一个tip,也会加入自己开发之…
这个东西很烦人,相信很多人都不理解 今天来总结一下,首先有很多概念都要事先弄得清楚明白 1.屏幕分辨率 所谓屏幕分辨率相信很多人都知道他的概念,不就是1280pxX720PX吗?不就是这种形式吗?有什么难的,这几个词在各种手机评测上面不是已经用烂了吗? 可是很多人都没有真正理解这个概念!!! 1280pxX720px 它的意思是纵向1280个像素,横向720个像素. 记住!只是像素而已,和尺寸,和大小,和比例没有半毛钱的直接关系 我一直都以为为什么这个东西要叫做屏幕分辨率,为什么要叫做分辨率?之…
dip  device independent pixels(设备独立像素). 不同设备不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖像素. 在android上开发的程序将会在不同分辨率的手机上运行.为了让程序外观不至于相差太大,所以引入了dip的概念.比如定义一个矩形10 x 10dip.在分辨率为160dpi的屏上,比如G1,正好是10 x 10像素.而在240 dpi的屏,则是15 x 15像素.换算公式为pixs = dips *…
Android上dip.dp.px.sp等单位说明 dip  device independent pixels(设备独立像素). 不同设备不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖像素. 在android上开发的程序将会在不同分辨率的手机上运行.为了让程序外观不至于相差太大,所以引入了dip的概念.比如定义一个矩形10 x 10dip.在分辨率为160dpi的屏上,比如G1,正好是10 x 10像素.而在240 dpi的屏,则是15…
WPF The Hard Way Windows Presentation Foundation (WPF) 是微软下一代显示系统,用于生成能带给用户震撼视觉体验的 Windows 客户端应用程序. 使用 WPF,您可以创建广泛的独立应用程序以及浏览器承载的应用程序. WPF 的核心是一个与分辨率无关并且基于向量的呈现引擎,旨在利用现代图形硬件的优势.WPF 通过一整套应用程序开发功能扩展了这个核心,这些功能包括可扩展应用程序标记语言 (XAML).控件.数据绑定.布局.二维和三维图形.动画.样…
Android 提供DisplayMetircs 类可以很方便的获取分辨率.下面介绍 DisplayMetics 类: Andorid.util 包下的DisplayMetrics 类提供了一种关于显示的通用信息,如显示大小,分辨率和字体. 为了获取DisplayMetrics 成员,首先初始化一个对象如下: DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetri…
dp = dip : device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖像素. px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多. pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用: sp: scaled pixels(放大像素). 主要用于字体显示best for…
简介 一.   WPF产生的背景 因为人们的生活水平不断提前,审美观也随着提升,而软件的应用发展水平目前无法赶上大家的审美观和使用要求:比如:像电影中的软件能够方便的使用,而且有动态的效果同时附加形象的声音:而且采用GDI/GDI+开发炫一点的产品,成本很高,为了解决此问题,微软推出了一套解决方案WPF:WPF是基于Directx上开发的,使用的图形是矢量图,所以达到分辨率无关: 二.   概念 Windows Presentation Foundation (WPF) 是一种 UI 框架,可创…