代码之家  ›  专栏  ›  技术社区  ›  Fyer-Zero

使用SVG更新webbrowser内容

  •  0
  • Fyer-Zero  · 技术社区  · 6 年前

    我使用webbrowser控件来显示在程序中创建的SVG文件,并将其保存在公共变量中作为XMLdocument。现在,我想编辑我的SVG并将新文件加载到webbrowser控件中。

    这是我正在使用的变量

    Public XSchemaSVG As New XmlDocument
    

    当我填充它并将其加载到我的webbrowers中时,一切都正常,然后当我想要更新版本时,我使用以下代码来重新加载SVG

      Public Sub DrawSVGinWebBrowserControl()
    
        Dim text As String = XSchemaSVG.InnerXml
        WebBrowser1.DocumentText = "<!DOCTYPE HTML><html><head><meta http-equiv=""x-ua-compatible"" content=""IE=11""><meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8""><title>SVG overzicht</title> </head><body>" & text & "</body></html>"
    
    End Sub
    
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'Clear XSchemaSVG
        XSchemaSVG.RemoveAll()
        'Draw new SVG in XSchemaSVG
        DrawOverzichtSVG()
        'load new SVG in webbrowser control 
        DrawSVGinWebBrowserControl()
    
    End Sub
    

    但是webbrowser控件中的图片没有改变。我认为这要么与我清除XMLdocument的方式有关,要么与我在webbrowser控件中加载它的方式有关,有人能帮我一下,告诉我我做错了什么吗?如何修复它?

    编辑:所以我检查并可以验证我的XMLdocument是否正在更新。因此,问题在于重新加载webbrowser控件。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Fyer-Zero    6 年前

    我通过在DrawSVGinwebbrowser sub上使用以下代码修复了该问题

      Public Sub DrawSVGinWebBrowserControl()
    
        Dim text As String = XSchemaSVG.InnerXml
        WebBrowser1.DocumentText = "0"
        WebBrowser1.Document.OpenNew(True)
        WebBrowser1.Document.Write("<!DOCTYPE HTML><html><head><meta http-equiv=""x-ua-compatible"" content=""IE=11""><meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8""><title>SVG overzicht</title> </head><body>" & text & "</body></html>")
        WebBrowser1.Refresh()
    
    End Sub