先看一张图
在更改系统的百分比缩放的时候,我们的WPF程序书写好固定的宽高时,会因为这个的变化而变化。但是此时的宽高值是不变的。
因此可以认为WPF中的元素的宽高值是和系统当前的DPI相关统一的。Windows使用此来让WPF随UI的变化而变化
看似这个设计非常的好,而实际的情况是变大或变小后,UI但不能达到最初设计的那样合理布局了。
那么我们想让他在缩放变化时 而我们的UI一直就不变呢?
1 我们母窗体的大小跟随DPI放大而缩小 ,缩小而放大 你变 我变 达到不变为目的。
变化的东西有 SystemParameters.PrimaryScreenWidth
以及DPI变化比
PresentationSource source = PresentationSource.FromVisual(this); // 获取缩放因子 double dpiX = source.CompositionTarget.TransformToDevice.M11; double dpiY = source.CompositionTarget.TransformToDevice.M22;
2 此时的坐标系统又是如何变化呢? 此时的分辨率是没有变的
3 变化以后的图片资源需要重启程序,不然就会出现模糊的现象
标签:缩放,系统,source,UI,WPF,变化,DPI From: https://www.cnblogs.com/stweily/p/17849684.html