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,和其他各种的调整, 都没有很好的实现缩放功能。
如果你有更好的方法可以私信我。