gpt4 book ai didi

c# - Winforms WebBrowser 设置最大内容宽度

转载 作者:行者123 更新时间:2023-11-28 09:19:13 24 4
gpt4 key购买 nike

有没有办法强制 WebBrowser 有点像最大内容宽度?我想显示 html 内容(它只是样式文本),没有水平滚动,只有垂直滚动。所以让我们假设一条消息 This is a test message, that has no other purpose

This is a test
message, that
has no other
purpose

将显示,如果需要,将显示宽度垂直滚动条。

最佳答案

WebBrowser 支持一些 CSS 样式属性,您可以将其作为内联样式插入到 <head> 中。您的内容的一部分。你要的那个是width ;在 body 的默认类中将其设置为一个百分比(可能在 90-100 之间),并为您可以确定足够大的任何 img 标签设置一个显式类(您如何做取决于内容;一些图像是用它们的原始尺寸命名,或者可以在标签中设置宽度属性以帮助提高渲染速度;如果所有其他方法都失败,您可以使用 WebBrowser.Document 属性通过 ID 访问 DOM 元素并获取它们的属性),内容将调整大小以适应 WebBrowser 控件的宽度。

但是,有一个警告。 WebBrowser 的默认渲染器(基于 IE v6.1)不支持 max-width属性(根据 W3schools 的文档首先在 IE 7 中完全支持)。这将是更好的选择,而不是 width ,因为它告诉浏览器在必要时调整较小的尺寸以适合,但不会强制图像大于实际尺寸 width: X%将要。无论您对“显着尺寸”的阈值是多少,该条下方的图像都会导致小窗口大小的水平滚动头痛,因为它不会调整大小,并且该条上方的图像看起来很可笑窗口大小,因为它会调整大小。

有一种方法可以通过 Windows 注册表强制 IE 在逐个应用程序的基础上使用更现代的渲染器,但这有点痛苦,因为注册表更改需要提升用户权限,这会触发 UAC 提示(以及您的最终用户可能没有管理权限)。最好有一个带有一些自定义操作的安装程序在安装时为您完成,或者如果您在美国公司,请管理员通过组策略推送注册表脚本(对于任何计算机)。

为了使图像在没有管理员权限的情况下在运行时以与 max-width 属性类似的方式运行,您可以在内容的头部添加一些 HTML,从一些稳定的 Web 源导入 JQuery 并定义一个调整大小的事件处理程序文件。此事件应查询文档中的所有图像并使用它们的 naturalHeightnaturalWidth (代表每张图片的原始尺寸)及其父级的宽度,以将其尺寸设置为纵横比最佳尺寸或“自然”尺寸,以较小者为准。

哪种解决方案的工作量较小取决于将正确的代码放在正确的位置最终会产生多大的影响,以及对注册表进行更改会产生多大的影响。

关于c# - Winforms WebBrowser 设置最大内容宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26164778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com