【问题标题】:Navigating to an .html file in the assembly导航到程序集中的 .html 文件
【发布时间】:2010-12-05 00:00:44
【问题描述】:

我正在使用 WPF WebBrowser 控件导航到托管 Silverlight 的 html 页面。看来我不能使用 NavigateToString 或 NavigateToStream 方法,因为我有 Silverlight 内容。 html 内容加载正常,但不是 Silverlight。所以我想我必须使用 Navigate 方法,它需要一个 Uri。现在,我想导航到的 html 页面位于 Visual Studio 项目中的 .html 文件中,因此我必须拥有某种本地 uri。我不想将 html 文件复制到输出文件夹,因为我不想单独分发它;我希望它以某种方式包含在程序集中。问题是 WebBrowser 控件似乎不允许相对 Uris 或 pack://application:uris。

我怎样才能完成导航到程序集中的 .html 文件?

【问题讨论】:

    标签: wpf browser


    【解决方案1】:

    您应该能够使用 NavigateToString 并使用 GetManifestResourceStream 自己提取 HTML 文件:

    using (var _textStreamReader = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream("BrowserTest.test.htm")))
    {
        string content = _textStreamReader.ReadToEnd();
        MainBrowser.NavigateToString(content);
    }
    

    如果您需要在 HTML 文件中使用外部资源,您将会遇到问题。如果您需要外部资源,那么您将不得不将 Win32 资源(与 .net 资源不同)嵌入到您的程序集中,这有点麻烦。 CodeProject 上有一个在 WinForms 应用程序中执行此操作的示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多