cefSharp ChromiumWebBrowser 大小与页面内容的关系

2024-01-10

您知道如何使 ChromiumBrowser 打开时浏览器大小适合内容吗?现在这个 xaml 位于窗口主体中。当有人单击 MyTextBox 的文本时,ChromiumBrowser 将打开以显示更多信息。

Edit:如果没有固定的宽度和高度,铬窗口不会显示。

....
<Canvas Panel.ZIndex="99" Visibility="{Binding IsChromiuimVisible, Converter={StaticResource BooleanToVisibilityConverter}, FallbackValue=Collapsed}">
<Popup Placement="Top" PlacementTarget="{Binding ElementName=MyTextBlock}"
    IsOpen="{Binding IsChromiumVisible}" PopupAnimation="Fade" AllowsTransparency="True"
    MouseEnter="OnMouseEnter" MouseLeave="OnMouseLeave">
    <Grid Background="Transparent">
        <cefSharp:ChromiumWebBrowser
                 Width="300" Height="620"
              Address="{Binding ChromiumAddress, Mode=TwoWay}">
        </cefSharp:ChromiumWebBrowser>
    </Grid>
</Popup>
</Canvas>
....

我已经通过以下方式解决了将cefSharp浏览器高度适合页面内容的问题:

browser = new ChromiumWebBrowser("https://stackoverflow.com/");
// ... adding to parent's children etc. ...

browser.LoadingStateChanged += async (s, e) =>
{
    if (!e.IsLoading) // browser.CanExecuteJavascriptInMainFrame == TRUE !
    {
        JavascriptResponse response = 
            await browser.EvaluateScriptAsync(
                // GET HEIGHT OF CONTENT
                "(function() {                       " +
                "  var _docHeight =                  " +
                "    (document.height !== undefined) " +
                "    ? document.height               " +
                "    : document.body.offsetHeight;   " +
                "                                    " +
                "  return _docHeight;                " +
                "}                                   " +
                ")();");

        int docHeight = (int)response.Result;
        browser.Dispatcher.Invoke(() => { browser.Height = docHeight + 10; });
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cefSharp ChromiumWebBrowser 大小与页面内容的关系 的相关文章

随机推荐

  • 根据给定的月份文本对列表进行排序

    如何对给定列表进行排序l根据月份 Jan Feb Mar and L K l Jan K Mar K Feb L 预期结果应该是 result Feb L Jan K Mar K 您的尝试是一个列表理解 实际上除了创建一个新列表之外什么也不
  • 表中不存在键列

    我在添加引用另一个表的外键字段时遇到问题 首先 我创建了用户表 如下所示 CREATE TABLE users user id INT 11 NOT NULL AUTO INCREMENT PRIMARY KEY userName VARC
  • 通过将鼠标悬停在散景中突出显示多个 hex_tiles

    我尝试在十六进制图中可视化我的数据 为此 我在图类中使用 python bokeh 和相应的 hex tile 函数 我的数据属于 8 个不同类别之一 每个类别都有不同的颜色 下图显示了当前的可视化效果 I would like to ad
  • Android:SD 卡有使用功能选项吗?

    谷歌推出的一些较新设备不包含 SD 卡 而且它们似乎正在朝这个方向发展 我的问题 有没有办法将 SD 卡声明为使用功能 以防止没有外部存储的人从 Google Play 查看 下载应用程序 我意识到这不是解决问题的正确方法 但在我可以重新编
  • 在 Eclipse IDE 中运行的 Java 程序的退出代码?

    我正在使用 Eclipse 开发一个 Java 程序 该程序应根据具体条件以不同的代码退出 if veryBadError Runtime getRuntime exit 10 else if notSoBadError Runtime g
  • 使用字符串名称功能创建变量

    我正在尝试生成一个函数来在数据框架上创建一堆具有相同命名约定并使用相同逻辑的列 不幸的是 我在创建变量时遇到了一些奇怪的行为 我希望其他人可以解释这里发生了什么 df lt data frame var1 c 1 2 3 var2 c 3
  • codeigniter 加密/解密函数返回空字符串

    我正在尝试使用 codeigniter 登录 但无法这样做 然后我尝试从数据库复制密码并将其传递给 dycription gt decode 函数 它返回空字符串 这是代码 var dump this gt encryption gt de
  • XML 节点的多个分组

    我正在尝试使用 muenchian 分组按目的地和分类值对下面的输入进行分组 这对我来说是新的 所以我不确定如何正确执行此操作 输入文件将比这大得多 因此性能很重要
  • NUnit.Mocks 文档在哪里? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 NUnit 的模拟库 NUnit Mocks 的文档在哪里 我在他们中找不到任何东西官方文档 http
  • 一次读取 1 个字节的二进制文件

    我试图一次读取一个 C 语言的二进制文件 在互联网上搜索了几个小时后 我仍然无法让它检索除垃圾和 或段错误之外的任何内容 基本上 二进制文件采用列表格式 长度为 256 个项目 每个项目为 1 个字节 0 到 255 之间的无符号整数 我正
  • 修改int为float(mysql)

    我正在尝试将 MySQL 中的数据类型从 INT 更改为 FLOAT 如下所示 ALTER TABLE user MODIFY rate float 5 NOT NULL 但当前数据已被删除 有什么方法可以使用 SQL 将数据从 INT 转
  • 如何从指令调用控制器函数?

    如何从指令调用控制器函数 或者如何从控制器访问指令 ng model 例如 我使用 Angular ui 引导时间组件 当时间改变时 我需要通知控制器中的调用函数 我认为总的来说 这是组件之间双向通信的典型用例 appControllers
  • 持久化 MPMediaItemCollection 对象的方法? (选自 iPod)

    我正在制作一个应用程序 用户可以在其中选择设置选项卡中的歌曲 并根据需要在不同的视图中播放该歌曲 我希望这样 如果用户要关闭应用程序并再次重新打开它 则可以存储该项目 我设法允许用户选择并存储一首歌曲 IBAction showMediaP
  • 使用代码隐藏文件中的 VB.Net 编码填充 ASP.Net DropDownList

    我们在 ASP Net VB Net Web 表单的标记中有一个 DropDownList 我们希望使用数据集设计器创建的数据集中的数据填充 DropDownList 但我们在代码隐藏文件中使用的编码无法使用 FindControl 找到
  • VS2015 VSIX 系统内存不足异常

    我创建了一个新的 VSIX 项目并添加了一个新项目 gt 可扩展性 gt 自定义工具窗口 然后我尝试构建 但出现错误 1 gt Build started Project JSBQ Configuration Debug Any CPU 1
  • Ember数据删除失败,如何回滚

    如果我调用 destroyRecord 并且它在服务器上失败 它也会从本地存储和 UI 中消失 如果删除失败 我需要以某种方式 回滚 我尝试过这样的事情 item destroyRecord then function Notify suc
  • 从命令行构建解决方案

    我正在尝试使用命令行从 cmd 文件构建许多解决方案来处理整个构建 这是构建解决方案的行 for f i in CFG bld lst do set OUT i Release REBUILD call out C Program File
  • Web 应用程序中用于 Retina 显示的启动图像?

    有人知道如何让iOS在使用时显示更高分辨率的启动图像吗 目前 我只能使用 460x380 的图像 在 iPhone 4 的高 dpi 显示屏上显示时 该图像显然看起来很糟糕 我尝试了 2x 技巧 但似乎不起作用 有什么想法或解决方法吗 我从
  • jquery 中的 Twig 无法读取 jquery 变量

    我正在尝试使用 jQuery post 但在使用 twig 语法的路径部分有问题 这是代码 messageSender click function e e preventDefault var threadId this find a d
  • cefSharp ChromiumWebBrowser 大小与页面内容的关系

    您知道如何使 ChromiumBrowser 打开时浏览器大小适合内容吗 现在这个 xaml 位于窗口主体中 当有人单击 MyTextBox 的文本时 ChromiumBrowser 将打开以显示更多信息 Edit 如果没有固定的宽度和高度