如何在UWP / C中使用svg文件资源设置AppBarButton图标#
Microsoft文档声明您可以使用SVG矢量图形文件设置图标: https : //docs.microsoft.com/en-us/windows/uwp/design/style/icons
但是,当我尝试使用svg文件设置图标时,它只显示空白:
这是我将Svg文件添加到我的项目的方式:在项目下我创建了一个目录“Svg”,在Svg文件夹中我添加了文件“MyButton.svg”。 该svg资源文件的属性设置为:
BuildAction:内容
复制到输出目录:不要复制
自定义工具:
自定义工具命名空间:
您不能直接将.svg文件用作AppBarButton
图标。 要将SVG图标文件加载到AppBarButton.Icon中,您可以将其转换为PNG,字体或路径,然后使用FontIcon , BitmapIcon和PathIcon来显示它。 更多细节,你可以看看这个类似的线程:
如果您需要AppBarButton或Navigationviewitem.Icon的矢量化图标,并且Microsoft提供的标准图标不够,那么找到图标的最佳方法是在线查找免费的“图标字体”并将其加载到您的应用程序中一个资源,然后使用FontIcon设置图标。 (参见https://www.webpagefx.com/blog/web-design/free-icon-fonts )。
另一种方法是创建自己的字体并使用字体创建软件,如“FontBird”( https://birdfont.org/ )。
目前,将SVG文件转换为PathIcon的主要问题是在XAML中将PathIcon指定为单个“Path”XAML语句。 因此,需要将SVG文件中的每个路径都粉碎到相同的“路径”语句中,以便与用于指定PathIcon的单路径XAML格式兼容。 这更符合指定字体的方式。
但是,据说,SVG很容易翻译或转换成XAML,因为它以XML格式指定:
从SVG文件中获取此XAML PATH数据的三种方法。
方法1:Inkscape
1)在Inkscape中打开或创建SVG
2)文件 – >另存为…
3)在文件类型中,选择Microsoft XAML(靠近底部)
4)在窗口中,您可以选择兼容Silverlight。 我选择它会生成更干净的XML
方法2:XPS格式
1)将SVG打印到XPS打印机
2)XPS打印机将询问您文件名。 把它保存在某个地方
3)将文件扩展名重命名为.ZIP
4)提取拉链中的所有文件。 它将创建一堆文件和文件夹
5)追捕文件。 它可能位于Documents> 1> Pages> 1.fpage下
方法3:剪切并粘贴SVG文件XML
SVG是XML文件格式。 您可以在自己喜欢的文本编辑器中打开它。 如果您要打开文件并向下滚动,请查看以下内容。
1)在编辑器中打开SVG文件:
...
2)手动将XML路径标记转换为XAML路径标记:
XAML:
...