.net 8 WPF 适应Windows 显示分辨率150%

1.我们需要设置窗体的大小限制,避免窗口在不合适的分辨率不受控制。

   MaxWidth="1920" MinWidth="800" 
   MaxHeight="1080" MinHeight="520"

2.在 窗体的加载方法中增加 分辨率判断和调整

  // 获取当前屏幕的分辨率
  double screenWidth = SystemParameters.PrimaryScreenWidth;
  double screenHeight = SystemParameters.PrimaryScreenHeight;

  // 检查分辨率是否大于 1920x1080
  if (screenWidth > 1920 && screenHeight > 1080)
  {
      // 检测缩放设置
      // 获取当前窗口的 DPI 缩放比例
      var matrix = PresentationSource.FromVisual(this).CompositionTarget.TransformToDevice;
      double dpiScaleX = matrix.M11;
      double dpiScaleY = matrix.M22;

      // 检查是否没有设置缩放(DPI 缩放比例为 1.0)
      if (dpiScaleX == 1.0 && dpiScaleY == 1.0)
      {
          // 屏幕分辨率大于 1920x1080 且没有设置缩放
          // 执行相关操作
          this.MaxHeight = screenHeight;
          this.MaxWidth = screenWidth;
      }
  }

3.UI页面需要对控件反复调整确保在最小的情况下显示完整的内容,有必要的控件需要增加滚动条来调整。

尝试过使用 app.manifest 增加自动感知 DPI,和其他各种的调整, 都没有很好的实现缩放功能。
如果你有更好的方法可以私信我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开发小能手-roy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值