首页
学习
活动
专区
圈层
工具
发布

Windows 下的高 DPI 应用开发(UWP WPF Windows Forms Win32)

本文将介绍 Windows 系统中高 DPI 开发的基础知识。...额外的,对于 Windows 8.1 及以上的系统,系统 DPI 值等于主屏在系统启动时的屏幕 DPI 值。...当多个屏幕 DPI 不一样,而应用从一个屏幕切换到另一个屏幕的时候,应用会收到 DPI 改变的消息 应用的顶层和子 HWND 都会收到 DPI 改变消息 以下 UI 元素也会在 DPI 改变时缩放 非客户区...在创建一个窗口的前后分别调用 SetThreadDpiAwarenessContext 函数可以让创建的这个窗口具有单独的 DPI 感知级别。...在以下实验中,我组成了一个 96 DPI 的主屏和 144 DPI 的副屏,先在 96 DPI 的屏幕上截一张图,再将窗口移动到 144 DPI 的屏幕中再截一张图。

2.1K50

Android drawable微技巧,你所不知道的drawable的那些细节

首先我准备了一张270*480像素的图片: 将图片命名为android_logo.png,然后把它放在drawable-xxhdpi文件夹下面。为什么要放在这个文件夹下呢?...().getDisplayMetrics().ydpi; 其中xdpi代表屏幕宽度的dpi值,ydpi代表屏幕高度的dpi值,通常这两个值都是近乎相等或者极其接近的,在我的手机上这两个值都约等于403...首先解释一下图片为什么会被放大,当我们使用资源id来去引用一张图片时,Android会使用一些规则来去帮我们匹配最适合的图片。什么叫最适合的图片?...因此,当我引用android_logo这张图时,如果drawable-xxhdpi文件夹下有这张图就会优先被使用,在这种情况下,图片是不会被缩放的。...这样我们就把图片为什么会被缩放,以及具体的缩放倍数都搞明白了,drawable相关的细节你已经探究的非常细微了。 不过本篇文章到这里还没结束,下面我准备讲一讲我们在实际开发当中会遇到的场景。

3.1K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Qt-for-鸿蒙PC-AnimationDemo 动画演示开源鸿蒙开发实践

    项目实现了6种不同类型的动画演示(呼吸灯、渐变效果、移动动画、旋转动画、缩放动画、文字动画),展示了 Qt Quick 动画系统在 HarmonyOS 平台上的实际应用,为开发者提供了丰富的动画效果参考...、文字动画 ✅ 动画控制:支持开始、停止、暂停、继续等控制操作 ✅ 动画类型:透明度动画、位置动画、旋转动画、缩放动画、组合动画 ✅ ComboBox 选择器:通过下拉框切换不同的动画演示 ✅ 响应式布局...:适配不同屏幕尺寸 ✅ 窗口状态处理:正确处理窗口最大化、最小化等状态变化 ✅ 动画生命周期管理:自动启动、停止、重置动画状态 ✅ 完整的触摸交互支持 ️ 技术栈 开发框架: Qt 5.15+ for...关键点: 动态缩放:使用 scaleValue 属性控制元素大小 双向缩放:支持放大(1.0→2.0)和缩小(2.0→1.0) 手动控制:通过按钮控制动画的开始和停止 状态重置:切换时重置缩放值 8....屏幕外开始:初始位置设置为 -height(屏幕外) 自动播放:切换到此动画时自动播放 重新播放:提供按钮手动重新播放动画 9.

    24421

    将 UWP 的有效像素(Effective Pixels)引入 WPF

    那么当你写下 Width="96" 时,到底缩放还是不缩放呢?缩放就迁就了 DPI 缩放的特性,违背了物理尺寸相同的特性;不缩放就迁就了物理尺寸相同的特性,丢失了 DPI 缩放的特性。...认识到一个优秀的屏幕显示单位并不是按物理尺寸定义,而是根据不同的使用场景有所不同。第 1 点也部分得到了缓解——接受 DPI 缩放的特性,放弃承认物理尺寸相同的设定。...给有效像素下个定义 结合微软对有效像素的愿景,结合实际情况,我认为“有效像素”的定义应该是这样的: 在理想状态下,1 有效像素等于用户观看距离 50cm 时,观看屏幕上 1/96 英寸的物理距离所对应的视角大小...(彻底抛弃那个不能自圆其说的 DIP 吧!) 有效像素的特性 在以上定义之下,再研究有效像素的特性时,我们便能接受那些非理想状态下的不同行为,不再像 WPF 的 DIP 那样绝对而富有争议。...谈显示器像素个数: 用户使用了最佳分辨率 在 DPI 值为 96 时,显示完按钮宽度所用的屏幕像素个数为 96 DPI 值设置为 192 时,则显示完按钮宽度所用的屏幕像素个数是 192 在以上情况下

    1.9K21

    关于移动端适配,你必须要知道的

    当使用打印机进行打印时,打印机可能不会规则的将这些点打印出来,而是使用一个个打印点来呈现这张图像,这些打印点之间会有一定的空隙,这就是 DPI所描述的:打印点的密度。 ?...为什么强调 普通的使用距离下呢?...布局视口( layout viewport):当我们以百分比来指定一个元素的大小时,它的计算值是由这个元素的包含块计算而来的。当这个元素是最顶级的元素时,它就是基于布局视口来计算的。...例如:用户将浏览器窗口放大了 200%,这时浏览器窗口中的 CSS像素会随着视觉视口的放大而放大,这时一个 CSS像素会跨越更多的物理像素。...5.5 设置viewport 通过设置缩放,让 CSS像素等于真正的物理像素。 例如:当设备像素比为 3时,我们将页面缩放 1/3倍,这时 1px等于一个真正的屏幕像素。

    2.8K41

    WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片

    本文将提供一套计算方法,帮助计算某个 WPF 控件相比于屏幕像素尺寸的缩放比例,用于进行屏幕像素级别的渲染控制。 ---- 一个 WPF 控件会经历哪些缩放?...如下图,我画了一个屏幕,屏幕里面有一个 WPF 窗口,WPF 窗口里面有一个或者多个 ViewBox 或者设置了 RenderTransform 这样的缩放的控件,一层层嵌套下有我们的最终控件。...分别计算所有的缩放 从上面的图中,我们可以得知,有两种不同种类的缩放: 屏幕到 WPF 窗口的缩放 WPF 窗口内部的缩放 屏幕到 WPF 窗口的缩放 我们知道 WPF 的单位叫做 DIP 设备无关单位...你可以阅读我的另一篇博客了解到有效像素单位: 将 UWP 的有效像素(Effective Pixels)引入 WPF 有效像素主要就是考虑了 DPI 缩放。于是实际上我们就是在计算 DPI 缩放。...CompositionTarget 因为不同屏幕可能存在不同的 DPI。

    1.4K40

    mfc控件工具栏怎么打开_Qt界面库

    替代使用SetIcon 方法将图标分配给面板。当您移动窗格以使用不同的DPI显示时,图标将自动重新缩放。 2....CBCGPBaseVisualCtrl(所有仪表控件类的基类):当 DPI 更改或窗口移动到具有不同 DPI 的另一个监视器时,将调用新的虚拟方法 OnDPIChanged。...CBCGPBaseVisualObject(所有仪表实现和容器类的基类):当 DPI 更改或父窗口移动到具有不同 DPI 的另一个监视器时,将调用新的虚拟方法 OnDPIChanged。...当使用 Windows 主题 API 呈现某些 GUI 元素时,将使用特定于 DPI 的主题。 2. CBCGPVisualManager:添加了一个新的虚拟方法 OnDPIChanged。...当主应用程序窗口移动到以其他比例 (DPI) 显示时,框架会调用此方法。 3. 信息框:改进了一些视觉主题中的默认颜色(见截图)。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    1.6K40

    关于移动端适配,你必须要知道的

    当使用打印机进行打印时,打印机可能不会规则的将这些点打印出来,而是使用一个个打印点来呈现这张图像,这些打印点之间会有一定的空隙,这就是 DPI所描述的:打印点的密度。 ?...为什么强调 普通的使用距离下呢?...布局视口( layout viewport):当我们以百分比来指定一个元素的大小时,它的计算值是由这个元素的包含块计算而来的。当这个元素是最顶级的元素时,它就是基于布局视口来计算的。...例如:用户将浏览器窗口放大了 200%,这时浏览器窗口中的 CSS像素会随着视觉视口的放大而放大,这时一个 CSS像素会跨越更多的物理像素。...5.5 设置viewport 通过设置缩放,让 CSS像素等于真正的物理像素。 例如:当设备像素比为 3时,我们将页面缩放 1/3倍,这时 1px等于一个真正的屏幕像素。

    2.8K20

    关于移动端适配,你必须要知道的

    当使用打印机进行打印时,打印机可能不会规则的将这些点打印出来,而是使用一个个打印点来呈现这张图像,这些打印点之间会有一定的空隙,这就是 DPI所描述的:打印点的密度。 ?...为什么强调 普通的使用距离下呢?...布局视口( layout viewport):当我们以百分比来指定一个元素的大小时,它的计算值是由这个元素的包含块计算而来的。当这个元素是最顶级的元素时,它就是基于布局视口来计算的。...例如:用户将浏览器窗口放大了 200%,这时浏览器窗口中的 CSS像素会随着视觉视口的放大而放大,这时一个 CSS像素会跨越更多的物理像素。...5.5 设置viewport 通过设置缩放,让 CSS像素等于真正的物理像素。 例如:当设备像素比为 3时,我们将页面缩放 1/3倍,这时 1px等于一个真正的屏幕像素。

    2.8K10

    Qml开发中的性能Tips(翻译文)

    如果您确实需要启用Image的smooth属性,请在动画开始时禁用平滑处理,并在动画结束时重新启用它(仅当图像在屏幕上静止时,缩放瑕疵才可见)。...如果您需要绘制背景,但是具有覆盖屏幕一部分的静态UI元素,您仍然可以使用Item作为根元素并在这些静态项之间锚定一个Rectangle。这样你就不会做无用的绘画。...如果整个应用程序在一个代码量巨大的QML文件中实现,就会发生这种情况。明智地将应用程序划分为逻辑实体,在开始时加载最小QML,然后再使用加载器Loader根据需要加载更多QML。...4.1 在过渡动画中尽可能为屏幕的小区域设置动画 如果您需要在一秒钟内移动3个元素,请尝试每次移动300毫秒。该系统可以计算需要重新绘制的项的边界,并在这些边界内绘制所有内容。...您可能很幸运,获得了0.5%的改进,然后只在启动时(QML解析就是在这里完成的),其他地方都没有。 4.4 避免不必要的转换 如果属性的给定值与属性指定的类型不匹配,QML将执行类型转换。

    6.5K32

    【专业技术】Qt的新玩意

    有三不同种结构的QWidget: 不能作为父部件的简单部件(QLabel, QCheckBox, QToolButton等) 常作为其他部件的父部件(QGroupBox, QStackedWidget,...QML组件和QWidget的parent概念最明显区别在于,子项位置是相对于父项的,但不会要求子项完全包含在父项中(当然可在必要时设置子项的clipped属性).这个差异具有深远的影响,例如: 围绕部件的阴影或高亮可作为部件的子项...粒子效果可以漂移到其发起的对象之外. 过度动画可以将项目移动到屏幕范围之外隐藏他们....QML项与QGraphicsWidget比较 QML项和QGraphicWidget的主要不同点是使用方式.技术实现大致相同的,但实际上QML元素是可声明和可组合的,而QGraphicWidget是一个基本元素...其他主要不同在于QGraphicWidget用于布局模型,其具有独立的UI和逻辑.相反,QML实体通常是具有单一目标的项,不会在所有者中履行用户用例,而是在QML文件中组成等价的部件,要避免在项定义中涉及

    4K60

    从零开始学 Web 之 CSS3(八)CSS3三个案例

    (Pixels Per Inch)值来表示屏幕每英寸的像素数量,我们将PPI、DPI都称为像素密度,但PPI应用更广泛,DPI在Android设备比较常见。...4、设备独立像素 随着技术发展,设备不断更新,出现了不同PPI的屏幕共存的状态(如iPhone3G/S为163PPI,iPhone4/S为326PPI),像素不再是统一的度量单位,这会造成同样尺寸的图像在不同...是我们布局网页的区域,那么最终layout viewport是要显示在ideal viewport里的,而layout viewport大于ideal viewport时,于是就出现滚动条了,那么为什么有的移动设备网页内容被缩放了呢...移动设备厂商认为将网页完整显示给用户才最合理,而不该出现滚动条,所以就将layout viewport进行了缩放,使其恰好完整显示在ideal viewport(屏幕)里,其缩放比例为ideal viewport...user-scalable:是否允许用户进行缩放,值为"no"(不能缩放)或"yes"(可以缩放)。

    1.8K10

    从零开始学 Web 之 移动Web(一)屏幕相关基本知识,调试,视口,屏幕适配

    (Pixels Per Inch)值来表示屏幕每英寸的像素数量,我们将PPI、DPI都称为像素密度,但PPI应用更广泛,DPI在Android设备比较常见。...4、设备独立像素 随着技术发展,设备不断更新,出现了不同PPI的屏幕共存的状态(如iPhone3G/S为163PPI,iPhone4/S为326PPI),像素不再是统一的度量单位,这会造成同样尺寸的图像在不同...是我们布局网页的区域,那么最终layout viewport是要显示在ideal viewport里的,而layout viewport大于ideal viewport时,于是就出现滚动条了,那么为什么有的移动设备网页内容被缩放了呢...移动设备厂商认为将网页完整显示给用户才最合理,而不该出现滚动条,所以就将layout viewport进行了缩放,使其恰好完整显示在ideal viewport(屏幕)里,其缩放比例为ideal viewport...user-scalable:是否允许用户进行缩放,值为"no"(不能缩放)或"yes"(可以缩放)。

    1.2K21

    H7-TOOL固件发布V2.1.4,优化主界面,优化升级脱机烧录,增加导入功能,示波器操作说明增加485差分测量(2022-02-24)

    用 monitor per方式会异常 缺陷:仅仅在打开软件时识别DPI,移动到其他DPI屏则是缩放界面(轻微模糊,不影响使用) - 增加大尺寸的高清图标。...控件) - 如果DPI变化了,则窗口尺寸恢复缺省大小设置 3....用 monitor per方式会异常 缺陷:仅仅在打开软件时识别DPI,移动到其他DPI屏则是缩放界面(轻微模糊,不影响使用) - 增加大尺寸的高清图标。...控件) - 如果DPI变化了,则窗口尺寸恢复缺省大小设置 2....波形显示,修正X,格式显示异常的问题. DS18B20不能显示波形 4. 修正底栏缩放文字重叠问题 5. CAN助手解码器如有语法错误则显示出错原因 6.

    1.7K20

    Office LTSC 2021 for Mac(office全家桶)v16.65中文版

    包含Word、Excel、PowerPoint、Outlook、OneNote等多个工具,轻松进行工作,改善使用体验,强大的功能,一如既往的好用,提高工作效率必备神器,使用最先进的编辑、审阅和共享工具创建和共享具有专业外观的文档...每当我们点击一个Ribbon面板时,Office都会自动弹出一个动画特效。整体感觉很像是Win10特有的窗口淡入与淡出。...相比之下,IFS则是将多个条件并列展示,语法结构类似于“IFS(条件1,结果,条件2,结果,条件3,结果,……)”,最多可支持127个不同条件,算得上是给IF函数开挂了!...通常情况下,当我们将一个Office窗口从高分辨率显示器移动到低分辨率显示器时,微软都会自动使用一种叫“动态缩放DPI”的技术,来保证窗口在不同显示器间仍保持适合的大小。...7、自带中文汉仪字库之前小编一直很羡慕WPS的云字体功能,尤其在进行一些排版类工作时,这一特性真的非常非常实用。在office 2021中,我发现微软又新增加了几款内置字体。

    1K20

    android学习笔记----关于图形的基本处理讲解

    参数 bitmap Bitmap:要绘制的位图 这个值绝不能是null. matrix Matrix:用于在绘制位图时转换位图的矩阵。 这个值绝不能是null. paint Paint:可能为空。...会根据设备的屏幕密度,将这一数值转换为不同的像素数量,那么对图片来说是如何操作的呢?...88*4=352) 我们这里是在应用将需要的存储空间和应用将需要的处理能力之间找到一个折中,当我们提供多个版本的资源时,应用的确会占用更多的存储空间 但是却需要更少的处理能力,对于移动设备来说,这是一个非常值得达成的折中点...dp和px之间的关系:1dp是屏幕密度为160dpi时的1px,也就是说在密度值为160dpi的情况下,1dp=1px。...// 但是还是会因为机型屏幕改变其大小去显示(因为dpi每英寸像素密度不同) // 这就是可能出现获得bitmap.getwidth()和getHeight()的尺寸和显示的尺寸不同

    1.3K20

    OpenCV3 和 Qt5 计算机视觉:11~12

    该过程本身具有多种变体,并且可以根据目标平台采取很多不同的形式,但是它们都有一个共同点,就是以一种可以在目标平台中简单地执行它的方式打包应用。 困扰应用的依赖项。...QML 中的用户交互和脚本编写 对 QML 代码中的用户操作和事件的响应是通过将脚本添加到项目的插槽中来完成的,这与 Qt 窗口小部件非常相似。...此处的主要区别在于,在 QML 类型内部定义的每个信号还具有为其自动生成的对应插槽,并且可以填充脚本以在发出相关信号时执行操作。 好吧,让我们看另一个例子。 QML Button类型具有按下信号。...以下屏幕快照描绘了在用户界面上选择“按钮”项时“属性”窗格的不同视图: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tmGKnTPo-1681870159300)(https...在此示例中,我们还使用了 QML Drawer,该 QML Drawer在调用其打开函数时在另一个窗口上滑动,并且我们已嵌入imgViewer作为此Drawer的子项。

    8.1K20

    浅淡HTML5移动Web开发

    = high-dpi表示适配高分辨率的屏幕,还可以取值为dpi_value | device-dpi| high-dpi | medium-dpi | low-dpi,后面的四个定性,第一个定量,即dpi_value...是DPI值,device-dpi是使用设备原本的 dpi 作为目标 dp,不发生默认缩放,而后面的三个是指dpi取值在一定范围的表示。...从上面可以看出,高分屏和超分屏已经是主流了,具体的适配范围还是看各自的项目和定位吧。 讲了这么多,有人可能会疑惑为什么这些都不是用在CSS中的?...以上除了type=text外,其他的都是新增的,如果浏览器支持这些属性的话,就会自动调用相应组件,如在移动设备中type=number/email/text时,浏览器会调用不同版面的键盘,这样加快用户的输入...(3)盒子边框溢出 当我们指定了一个块级元素时,并且为其定义了边框,设置了其宽度为100%。

    3.1K50

    屏幕分辨率dpi计算_hypodensity

    (比如先在某个分辨率下完成设计,然后缩放到其他尺寸微调后输出),一般按照 dpi 之间的比例即 2:1.5:1:0.75   来给界面中的元素来进行尺寸定义。   ...将dp单元转换为屏幕像素很简单:px=dp(dpi/160)。例如,在240 dpi屏幕上,1 dp等于1。5物理像素。...在定义应用程序的UI时,应该始终使用dp单元,以确保在具有不同密度的屏幕上正确显示UI。   就是说在160dpi的屏幕上,1dip=1px。   ...它跟屏幕密度有关,如果屏幕密度大,1dip代表的px就多,比如在320dpi的屏幕上,1dip=2px。 为什么我们在布局的时候最好要用dip,不要用px?  ...是因为这个世界上存在着很多不同屏幕密度的手机,屏幕密度是什么?就是dpi,就是单位长度里的像素数量。

    5.1K20

    Windows微信DPI适配

    2.4 DPI Virtualization 对于Windows Vista之后的系统,当Windows检测到的程序不支持DPI缩放时(即非DPI Aware的程序),DWM会直接放大窗口。...2.应用需要按照OS支持不同级别的适配。一般来说,优先考虑使用第一种方式。 3.2 确定DPI缩放因子 在控件和窗口创建之前需要先确定DPI缩放因子。...使用其他DPI目录的图片资源时,在使用之前还需要先进行缩放处理,缩放的比例由相关的两个DPI的比值决定,以查找120 DPI下test.png为例。具体流程如下: ?...3.4 窗口和控件缩放 窗口和控件的缩放是DPI适配的主要工作。...这一部分主要工作就是将原先代码中动态设计算的尺寸与缩放因子相乘得到缩放后的尺寸。 对于代码中使用的常量尺寸,在定义的时候可以考虑#define而不是const常量。

    6.4K90
    领券