[英]HTML img tag does not render source image in WebKit.NET browser in C#
我正在尝试将WebKitBrowser DocumentText设置为包含本地SVG文件路径作为图像源的HTML字符串。 实际上,我想在Web浏览器中显示SVG文件。 这是我的代码:
string SVGPath = "file:///D:/MySVGFiles 1/SVGSample01.svg";
StringWriter stringWriter = new StringWriter();
using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter))
{
writer.AddAttribute(HtmlTextWriterAttribute.Src, SVGPath);
writer.AddAttribute(HtmlTextWriterAttribute.Width, "50%");
writer.AddAttribute(HtmlTextWriterAttribute.Height, "50%");
writer.RenderBeginTag(HtmlTextWriterTag.Img);
writer.RenderEndTag();
}
string content = stringWriter.ToString();
this.webKitBrowser1.DocumentText = content;
当我运行代码时,浏览器仅显示图像画布,而不呈现SVG文件。 我也尝试过使用JPG图像进行此操作,并获得了相同的结果。
谁能告诉我这段代码有什么问题吗?
我终于发现了什么问题。 WebKitBrowser的DocumentText属性是一个字符串,在其set方法中,HTML文本传递给loadHTMLString方法。
webView.mainFrame().loadHTMLString(value, null);
如果未指定URL,则使用DocumentText属性。 但是在这里我想从指定的地址加载图像。 因此,在使用诸如设置DocumentText属性之类的标记的情况下将无效。 我必须调用loadHTMLString,并且要使用其地址将图像添加到HTML字符串时,URL必须是图像文件的目录。 根据我在https://groups.google.com/forum/#!topic/uni_webview/idiRRNIRnCU中找到的信息,我更改了代码,问题得以解决! 这是有效的代码:
string fileName = "SVGSample01.svg";
string URL = "file:///D:/MySVGFiles 1/";
StringWriter stringWriter = new StringWriter();
using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter))
{
writer.AddAttribute(HtmlTextWriterAttribute.Src, fileName);
writer.AddAttribute(HtmlTextWriterAttribute.Width, "50%");
writer.AddAttribute(HtmlTextWriterAttribute.Height, "50%");
writer.RenderBeginTag(HtmlTextWriterTag.Img);
writer.RenderEndTag();
}
string content = stringWriter.ToString();
(this.webKitBrowser1.GetWebView() as IWebView).mainFrame().loadHTMLString(content,URL);
只要确保URL字符串包含“ file:///”和最后一个“ /”即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.