我有一个 Windows 窗体应用程序,它使用WebBrowser
控件来显示嵌入的网页。该文件(成功)使用以下方法加载:
webHelp.DocumentStream=
Assembly.GetExecutingAssembly()
.GetManifestResourceStream("MyAssembly.help.html");
为了使它工作(即要加载/显示的文件),我设置了webHelp.AllowNavigation = false;
. 我不完全明白为什么,但如果设置为 true,则不会显示页面。
在我的 HTML 文档(见下文)中,我希望能够浏览不同的部分。但是当我单击一个链接时,浏览器控件不会转到目标元素。该网页在独立的 Internet Explorer 10 中运行良好,因此它必须与控件有关,更具体地说是与AllowNavigation
属性有关。MSDN 没有太大帮助。
我怎样才能实现这种导航行为?是否有另一种加载 HTML 文件而不将AllowNavigation
属性设置为 false 的方法?
这是我的简单 HTML 文件:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Using this tool</title>
</head>
<body>
<h3>Description</h3>
<div><p id="contents">Contents</p></div>
<div>
<p id="general">Using the file converter</p>
<p>*converter description*</p>
<a href="#contents" class="goToTop">Go To Top!</a>
</div>
<div class="divBlock" >
<p id="selectOption">Selecting a conversion action</p>
<p>*action selection*</p>
<a href="#contents" class="goToTop">Go To Top!</a>
</div>
</body>
</html>
编辑:经过额外的测试,我找到了问题的根源。为属性设置值URL
、运行应用程序并随后清除该值后出现问题。AllowNavigation
除非属性设置为,否则不会再加载嵌入页面false
。我在下面的回答中描述了两种解决方案。