系统之缩放

先看一张图

在更改系统的百分比缩放的时候,我们的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 变化以后的图片资源需要重启程序,不然就会出现模糊的现象

posted @ 2023-11-22 16:38  stweily  阅读(38)  评论(0编辑  收藏  举报