显示来自自定义控件的本地 HTML 页面
Display local HTML page from custom control
我想制作一个控件,作为 Javascript 库的包装器。这是一个 Web 浏览器控件,显示我编写的 HTML 页面,用 C# 函数包装 JS 函数。
我的问题是如何将 .html 页面与控件的构建捆绑在一起。
我想包含 html 文件作为相对路径。我正在做的是:
this.Url = new Uri(System.IO.Path.GetFullPath(@"WebPage\leaflethtml.html"));
在控件的构造函数中。
出现的问题是,在设计器中,相对路径更改为当前工作目录(Visual Studio设计器的目录)的相对路径,因此 Uri 查看<VisualStudioFilePath>\WebPage\leaflethtml.html
而不是 <ControlBinary>\WebPage\leaflethtml.html
和 returns 一条错误消息(这不是什么大事,但不是很优雅)。
有没有更好的方法?
PS我试过了
if (!this.DesignMode)
{
this.Url = new Uri(System.IO.Path.GetFullPath(@"WebPage\leaflethtml.html"));
}
但它仍然在设计器中执行:(
您可以将 html 和 JavaScript 文件指定为嵌入资源。这可以通过在 Visual Studio.
的文件属性对话框中更改构建操作来完成
然后可以使用反射加载文件,例如:
var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("namespace.filename.extension");
我想制作一个控件,作为 Javascript 库的包装器。这是一个 Web 浏览器控件,显示我编写的 HTML 页面,用 C# 函数包装 JS 函数。
我的问题是如何将 .html 页面与控件的构建捆绑在一起。
我想包含 html 文件作为相对路径。我正在做的是:
this.Url = new Uri(System.IO.Path.GetFullPath(@"WebPage\leaflethtml.html"));
在控件的构造函数中。
出现的问题是,在设计器中,相对路径更改为当前工作目录(Visual Studio设计器的目录)的相对路径,因此 Uri 查看<VisualStudioFilePath>\WebPage\leaflethtml.html
而不是 <ControlBinary>\WebPage\leaflethtml.html
和 returns 一条错误消息(这不是什么大事,但不是很优雅)。
有没有更好的方法?
PS我试过了
if (!this.DesignMode)
{
this.Url = new Uri(System.IO.Path.GetFullPath(@"WebPage\leaflethtml.html"));
}
但它仍然在设计器中执行:(
您可以将 html 和 JavaScript 文件指定为嵌入资源。这可以通过在 Visual Studio.
的文件属性对话框中更改构建操作来完成然后可以使用反射加载文件,例如:
var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("namespace.filename.extension");