本文说如何显示SVG
本来在我一个白天晚上按钮,使用图片,图片不清晰
这些图片在http://www.zcool.com.cn/下载,不知道是不是不能直接用
我们需要一个看起来不会模糊的图,一般都是选矢量图。因为矢量图格式很多,但是比较容易找到的图很少,所以我们就使用svg,其实png也是,但是他播放模糊。lindexi
我们开始使用Image,但是没有显示
于是网上有一个库Mntone.SvgForXaml,https://github.com/mntone/SvgForXaml,我们用Nuget
安装Mntone.SvgForXaml,安装win2d 1.11.0
我们上面那个代码就是svg,我们使用ViewModel绑定,绑定内容是SvgDocument
自然我们需要写一个字符串去转换
然后我们在我们的界面
先使用命名Mntone.SvgForXaml.UI.Xaml
然后绑定
当然我们也可以放在我们的解决方案,假如我们的图片 Assets/weather_sun.svg
那么我们可以给我们的svgImage一个x:Name="Svg"
原文:因为他会占用内存,我们需要手动把它释放
我们写在我们页面关掉,其实这个并不是关掉,只是我们的页面不显示
我们可以简单把svg转换为我们之前的图片,JPG,png
先让用户选择保存的文件,然后选择.jpg或.png
SvgImageRendererFileFormat format;
可以SvgImageRendererFileFormat.Bitmap
或者什么自己选
在最新版本,ms支持svg,参见:https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.media.imaging.svgimagesource
所以在一个 Image控件加入源就好,不需要去做其他的代码。
参见:http://igrali.com/2015/12/24/how-to-render-svg-in-xaml-windows-10-uwp/
代码:https://github.com/lindexi/UWP/tree/master/uwp/src/ScalableVectorGraphic
win2d 使用 svg
现在 win2d 支持 svg 1.1 ,直接在 win2d 使用svg请看下面代码
首先是加载图片,例如 xx.svg
然后开始创建 CanvasSvgDocument ,这个类可以用来显示 svg ,但是他有静态方法创建
然后可以显示处理或者修改svg图片,下面的代码写在 Draw 函数。如果不知道这个函数是哪个,请看我的博客
修改他可以使用 SetColorAttribute 等进行修改,请看 Win2D 1.21.0 – SVG, improved HDR support, and bugfixes – Win2D Team Blog
原文链接: http://blog.lindexi.com/post/win10-uwp-%E6%98%BE%E7%A4%BASVG
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
欢迎转载、使用、重新发布,但务必保留文章署名 林德熙 (包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我 联系。