我试图将我的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图像尝试了这个,并得到了相同的结果。
有人可以告诉我这段代码有什么问题吗?
答案 0 :(得分:1)
我终于发现了什么是错的。 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:///”和最后一个“/".