简介
SVG是现在越来越多开发人员开始使用的一种矢量图格式,不仅体积小,而且使用游览器直接就可以打开,而且快捷方便。但是使用C#开发,默认的WebBrower并不支持SVG,而调用COM的IE浏览器同样有问题。所以我们使用了第三方的Chorme浏览器来实现。
实现办法
首先需要通过NuGet程序包安装Chrome的核心模块CefSharp,其安装的过程参见《C# WINFORM嵌入CHROME浏览器(CEFSHARP)》。
安装有几点注意事项:
- CefSharp的使用.NET Framework 4.5.2及以上版本;
- 由于框架的限制,所以运行环境必需指定为x86或x64;
使用方法
// 先定义一个浏览器,默认连接为空
ChromiumWebBrowser webview = new ChromiumWebBrowser("");
// 设置基本属性
webview.Dock = DockStyle.Fill;
this.Controls.Add(webview);
可以直接设置其HTML文件
webview.LoadHtml("<html><body>Hello</body></html>");
注:C#WinForm程序还可以直接调用SVG并动态在SVG图上绑值,可以参见此文:https://blog.csdn.net/mqbeauty/article/details/70208424
测试
以下为SVG测试代码:
<!DOCTYPE html>
<html>
<body>
<h1>My first SVG</h1>
<svg align="center" width="300" height="500" xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" />
<circle cx="200" cy="150" r="40" stroke="black" stroke-width="3" fill="blue" />
<rect x="160" y="160" height="100" width="100"
style="stroke:#ff0000; fill: #0000ff">
<animateTransform
attributeName="transform"
begin="0s"
dur="3s"
type="rotate"
from="0 210 210"
to="360 210 210"
repeatCount="indefinite" />
</rect>
<circle cx="0" cy="50" r="15" fill="blue" stroke="black" stroke-width="1">
<animate attributeName="cx"
from="0"
to="100"
dur="5s"
repeatCount="indefinite" />
</circle>
</svg>
</body>
</html>