该应用程序在 v107+ 版本之前按预期运行。然而,从 v108 升级到 v119 后,该应用程序并没有按预期运行。使用 Chromium 的 CefSharp 使文本太小。
Chromium v108 之前:
应用程序中的文本正确显示。 文本大小符合用户期望和系统设置。 升级到 Chromium v108 及更高版本(最高 v119)后:
呈现的文本明显小于预期。 由于尺寸缩小,文本显得难以阅读或难以阅读。
Chromium 渲染文本 - 响应式
要定义方法或变量,您需要遵循以下语法:
声明一个采用 IntPtr 参数并返回 bool 值的方法
public static extern bool SetProcessDpiAwarenessContext(IntPtr dpiAwarenessContext);
声明一个保存 int 常量且值为 -1 的变量
private const int DPI_AWARENESS_CONTEXT_UNAWARE = -1;
初始化之前,调用此方法:
if (!Cef.IsInitialized)
{
var r = SetProcessDpiAwarenessContext((System.IntPtr)DPI_AWARENESS_CONTEXT_UNAWARE);
if (!r)
{
var error = Marshal.GetLastWin32Error();
Trace.TraceWarning($@"Error settings DPI awareness: {error}.");
}
Cef.Initialize(settings, performDependencyCheck: true, browserProcessHandler: null);
}
参考链接:
https://github.com/cefsharp/CefSharp/issues/4410#issuecomment-1542363136