我正在构建一个Windows窗体应用程序,我将在其中添加一个控件,它将显示相当多的不同数据。在大多数情况下,内部数据将是导航按钮和帮助/培训文本。
我认为如果我能用HTML编写内容然后只在应用程序的控件中显示它,那将是理想的,但我不确定这是不是一个好主意。
需要注意的另一点是,在不久的将来某个时候将会有一个基于Web的相同应用程序版本,并且在HTML中执行这部分应用程序将使非常容易的可重用性。
如果这很重要,用户将不会安装IIS。
答案 0 :(得分:6)
为此,我认为嵌入式Web浏览器非常棒。很多应用程序使用Web浏览器控件进行导航,信息,培训等。Steam就是一个例子。此外,可重用性几乎总是最佳实践。
但我会使用WebKit而不是内置的IE网络浏览器控件。
答案 1 :(得分:2)
我有一个类似的应用程序,我认为WebBrowser控件非常有效。如果您认为这是您需要的,我会为此而且还有许多其他类似的应用程序。您可以使用HtmlDocument.InvokeScript()
从C#调用HTML页面中的Javascript函数,使用window.external
从Javascript调用C#,并且通过这种双向通信可以简化生活。
用户不需要安装IIS,因为您没有运行Web服务器,只是使用HTML显示内容。
说实话,我会选择内置的IE控件而不是webkitdotnet。尽管WebKit本身优于IE,但是版本为0.5的webkitdotnet项目却没有C#<> JavaScript通信或DOM访问,似乎很难判断它是否仍在积极开发中。如果/它获得功能奇偶校验会很好,因为IE显然远非完美,但内置IE控件的优点是你的应用程序的每个用户都已安装它并且WebBrowser控件已经过充分测试。我发现了一些缺点:
<base href="file://...">
结合使用。这可能会阻止您在本地HTML文档中使用相对链接。<meta http-equiv="X-UA-Compatible"
标签来改变这一点,但是我实际上发现它可以让生活更轻松,因为它减少了你必须测试的不同版本的数量。