繁体   English   中英

HTML img标记无法在C#中的WebKit.NET浏览器中呈现源图像

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM