如何在 Windows 8 / WinRT 中将 SVG 文件转换为 XAML。我对这个 XAML / SVG 环境不熟悉,所以请有经验的人帮我实现。我需要解析这个 SVG 文件,并通过代码在页面上显示内容。
如何在 Windows 8 / WinRT 中将 SVG 文件转换为 XAML。我对这个 XAML / SVG 环境不熟悉,所以请有经验的人帮我实现。我需要解析这个 SVG 文件,并通过代码在页面上显示内容。
对我来说最简单的方法是:
此外,转换后您可能需要稍微更新结果输出文件,因为并非所有的XAML处理引擎都支持将字符串转换为Figures(如Why does this Xaml Path crash silverlight?中所述的已接受答案)。例如,如果您有以下内容:
<Path Fill="#FFEDEDED" StrokeThickness="1" Stroke="#FFA3A3A3" Opacity="0.7"
VerticalAlignment="Center" HorizontalAlignment="Center" >
<Path.Data>
<PathGeometry Figures="m 1 2 l 4.0525 5.2361 l 4.0527 -5.2361 z "/>
</Path.Data>
</Path>
然后你将需要将其更改为这样:
<Path Fill="#FFEDEDED" StrokeThickness="1" Stroke="#FFA3A3A3" Opacity="0.7"
VerticalAlignment="Center" HorizontalAlignment="Center"
Data="m 1 2 l 4.0525 5.2361 l 4.0527 -5.2361 z" />
- 或 -
你可以使用一个略微不同的方法从Inkscape导出xaml,这个方法由Tim Heuer在问题Convert SVG to XAML的被接受答案中描述,因为两种方式产生了不同的xaml输出:
方法(超级hack):
使用Inkscape保存为PDF
将文件扩展名从PDF更改为AI
使用Expression Design打开AI文档
导出到Silverlight Canvas
更新(2015年8月25日)
我发现自己越来越经常使用第二种(“hack”)方法而不是第一种(更直接)方法,因为它创建了更多“可预期”的XAML,正如我所说。
XAML Silverlight 3 Canvas
还是XAML Silverlight 4 / WPF Canvas
。您的其他设置是什么(文本,实时效果等)?svg / pdf / ai需要特定的大小吗?哪一个?当您想要嵌入xaml时,您使用什么名称?vectorgraphic.xaml
? - testing <TextBlock Text="" FontFamily="/Assets/icomoon.ttf#icomoon" FontSize="45"</TextBlock>
在 Microsoft Store 中有一个免费的转换器可用(作为独立的 Windows 应用程序)。它被称为 SVG to UWP XAML Converter。
它可以将我的多色 SVG 批量正确地转换为 XAML,而且没有任何问题。我将其添加到了 WPF 用户控件中的 Visual Studio 中(如果要预览,则需要手动选择 SVG 文件)。