2017-02-28 43 views
0

我已經經歷了很多與這個問題的職位。我想在vb.net的visual studio中開發一個應用程序,我想讓用戶打開一個對話框並選擇一個SVG文件,然後可以在應用程序中顯示。在vb.net中顯示svg文件

我看到了很多在互聯網上的解決方案,但這些都是我在網上看到的所有解決方案的幾個常見問題 -

  1. 貌似沒有人在顯示SVGs有任何問題,在2010年以後和大部分的解決方案直到那時包括Adobe現在停止使用的Adobe SVG查看器的安裝。
  2. 大多數人在他們的代碼中創建一個SVG並顯示那個簡單的SVG。我不想那樣,因爲我不知道SVG是什麼。我想要的是用戶實時選擇SVG並顯示它。

我試圖讓它在picturebox和webbrowser控件中工作,但是我找不到任何重要的東西。

此外,我希望如果你可以請給我在Visual Basic中的代碼不在C#中。但是,如果你在c#中找到一些相關的代碼,就把它鏈接起來,因爲如果它可以工作,我可能會嘗試轉換代碼。

不要擔心打開對話框和所有內容,只需打開一個svg,其中svg的整個地址都寫在一個地方,我可以從中取出它。

+0

嘗試[這](http://stackoverflow.com/questions/12585430/can-the-picturebox-be-used-to-display-vector-based-images)? –

+0

@iProgramIt是的。他編寫的代碼適用於.wmf文件,不適用於.svg文件。我想要一些適用於.svg文件的東西。或者,也許可以將.svg轉換爲.wmf。這些中的任何一個都適用於我。 –

+0

那麼,爲什麼不將瀏覽器控件導航到svg文件呢?我知道IE可以做到這一點,我知道網頁瀏覽器控件使用IE渲染引擎。 –

回答

2

它非常簡單直接在Web瀏覽器控件中加載SVG文件。你可以通過DocumentText屬性這樣做。

Public Class Form1 

    Public Sub New() 
     Dim text As String = System.IO.File.ReadAllText("svg.svg") 
     InitializeComponent() 
     WebBrowser1.DocumentText = text 
    End Sub 

End Class 
+0

試過了。這個邏輯對我來說很有意義,但我不知道它爲什麼不起作用。我的意思是webbrowser控件實際上沒有顯示任何東西。它是空白的。與我在IE中打開的svg相同,它打開正常。但不適用於網頁瀏覽器控制。任何擴展我失蹤或類似的東西?我添加了一個調試技巧,以便它正在讀取文件。問題是顯示 –

+0

進一步調試。原來代碼無限期地停留在InitializeComponent()中,或者花費太長時間。無論哪種方式它卡住,因此它永遠不會到達下一行。當我刪除I​​nitializeComponent()部分時,它到達了代碼的末尾,但仍然沒有顯示任何內容。 InitializeComponent()的重要性是什麼以及我的代碼爲什麼卡在它中? –

+0

初始化組件由Winforms設計器生成的文件使用。 http://stackoverflow.com/questions/12297079/very-simple-definition-of-initializecomponent-method –