【问题标题】:Display a svg file in vb.net在 vb.net 中显示一个 svg 文件
【发布时间】:2017-07-19 06:30:09
【问题描述】:

我已经阅读了很多关于这个问题的帖子。我正在尝试在 vb.net 的 Visual Studio 中开发一个应用程序,我想让用户打开一个对话框并选择一个 SVG 文件,然后可以在应用程序内显示该文件。

我在网上看到了很多解决方案,但这些是我在网上看到的所有解决方案的几个常见问题 -

  1. 似乎在 2010 年之后没有人在显示 SVG 时遇到任何问题,并且在此之前提供的大多数解决方案都包括安装 Adob​​e SVG 查看器,该查看器现已被 Adob​​e 停产。
  2. 大多数人在他们的代码中创建一个 SVG 并显示那个简单的 SVG。我不希望这样,因为我不知道 SVG 是什么样的。我想要的是用户实时选择 SVG 并显示出来。

我试图让它在图片框和网络浏览器控件中都工作,但我在其中找不到任何重要的东西。

我也希望你能给我 Visual Basic 中的代码,而不是 C# 中的代码。但是,如果您确实在 c# 中找到了一些相关代码,请链接它,因为如果它有效,我可能会尝试转换代码。

不用担心打开对话框之类的,只要打开一个svg,svg的整个地址都写在一个地方,我可以从那里拿走。

【问题讨论】:

  • 试试this?
  • @iProgramIt 是的。他编写的代码适用于 .wmf 文件而不适用于 .svg 文件。我想要一些适用于 .svg 文件的东西。或者也许可以将 .svg 转换为 .wmf 的东西。其中任何一个都对我有用。
  • 那么,为什么不直接将 Web 浏览器控件导航到 svg 文件呢?我知道 IE 可以做到这一点,并且我知道 Web 浏览器控件使用 IE 渲染引擎。

标签: vb.net visual-studio svg webbrowser-control picturebox


【解决方案1】:

在 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

【讨论】:

  • 试过了。这个逻辑对我来说很有意义,我仍然不知道为什么它不起作用。我的意思是 webbrowser 控件实际上没有显示任何内容。它是空白的白色。我在 IE 中打开的同一个 svg,它打开得很好。但不适用于网络浏览器控制。我缺少任何扩展名或类似的东西?我添加了一个调试艺术以确保它可以正常读取文件。问题在于显示
  • 进一步调试。原来代码无限卡在 InitializeComponent() 中或花费的时间太长。无论哪种方式,它都被卡住了,因此它永远不会到达下一行。当我删除 InitializeComponent() 部分时,它到达了代码的末尾,但仍然没有显示任何内容。 InitializeComponent() 的重要性是什么,为什么我的代码会卡在里面?
  • Initialize 组件由 winforms 设计器生成的文件使用。 stackoverflow.com/questions/12297079/…
  • 无论如何它的工作正常没有 initializecomponent() 线所以不用担心。
  • 不过,可以将 svg 图像加载委托给同一个 WebBrowser 控件。这样:webBrowser1.Url = New Uri(@"file:///./svg.svg") 值得一提的是,也支持绝对文件路径。
猜你喜欢
  • 2020-11-18
  • 1970-01-01
  • 1970-01-01
  • 2019-02-18
  • 2016-01-26
  • 1970-01-01
  • 2018-10-20
  • 2013-11-13
  • 1970-01-01
相关资源
最近更新 更多