将CefSharp 3 ZoomLevel转换为百分比,然后再次返回

问题描述

Cef浏览器方法:SetZoomLevel和GetZoomLevelAsync使用ZoomLevel,这是人类难以理解的:https://www.magpcss.org/ceforum/viewtopic.php?f=6&t=11491#p21763

我已经创建了扩展程序来解决此问题,它可能会帮助某人:

解决方法

public static class CefExtensions
{

    /// <summary>
    /// Converts the given percentage to the ZoomLevel to looke like chrome at zooming in/out
    /// 100 (%) = No Zoom / Reset
    /// </summary>
    /// <param name="pPercentage">Default= 100 = reset zoom</param>
    public static void SetZoomPercent(this ChromiumWebBrowser pBrowser,int pPercentage = 100)
    {
        var lTmp = pPercentage / 100f;
        var lZoomLevel = Math.Log(lTmp,1.2);
        pBrowser.SetZoomLevel(lZoomLevel);
    }

    /// <summary>
    /// Translates the cef ZoomLevel to the Zoom showed at the Chrome Browser
    /// Usage: Browser.GetZoomPercentAsync().Result
    ///</summary>
    public static async Task<double> GetZoomPercentAsync(this ChromiumWebBrowser pBrowser)
    {
        var lZoomLevel = await pBrowser.GetZoomLevelAsync();
        var lPercentage = Math.Pow(1.2,lZoomLevel) * 100;
        return lPercentage;

    }
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...