Wpf 为什么SVG图像不能在程序中正确显示
我想在WPF中显示SVG文件,我发现很多人推荐使用sharpvectors 我将其与XAML一起使用,如下所示:Wpf 为什么SVG图像不能在程序中正确显示,wpf,Wpf,我想在WPF中显示SVG文件,我发现很多人推荐使用sharpvectors 我将其与XAML一起使用,如下所示: <Window x:Class="KongGamLung.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmln
<Window x:Class="KongGamLung.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:KongGamLung"
xmlns:SVG="http://sharpvectors.codeplex.com/svgc/"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<SVG:SvgViewbox Source="Create.svg" AutoSize="True" OptimizePath="False" TextAsGeometry="True"></SVG:SvgViewbox>
</Grid>
</Window>
那么,编辑器中正确显示的SVG:
但是,在我运行程序之后,SVG就消失了。
为什么结果是这样?此外,我在NUGET中尝试了几个SVG包。但它们比这更糟糕,甚至在编辑器中也无法显示
我怎样才能解决这个问题?如果有比这个更好的SVG包,请向我推荐。多谢各位
你有两个选择
如果将svg文件的构建操作设置为“内容”,则应将“复制到输出目录”设置为“始终复制”,或者如果较新,则设置为“复制”。
如果将svg文件的构建操作设置为Resource,则它将作为可由用户访问的程序集资源。
然后,您可以像下面这样在XAML中使用它,并且可以将Copy to Output Directory设置为not Copy
<SVG:SvgViewbox Source="Create.svg"
AutoSize="True" OptimizePath="False" TextAsGeometry="True"/>
你有两个选择
如果将svg文件的构建操作设置为“内容”,则应将“复制到输出目录”设置为“始终复制”,或者如果较新,则设置为“复制”。
如果将svg文件的构建操作设置为Resource,则它将作为可由用户访问的程序集资源。
然后,您可以像下面这样在XAML中使用它,并且可以将Copy to Output Directory设置为not Copy
<SVG:SvgViewbox Source="Create.svg"
AutoSize="True" OptimizePath="False" TextAsGeometry="True"/>
您的计算机中哪里有Create.svg文件?您是否将该文件作为资源包含在项目中?我已经编辑了主题。我是由adobe illustrator创建的,并已作为资源包含在项目中。@MathivananKPWhere您的计算机中有create.svg文件吗?您是否将该文件作为资源包含在项目中?我已经编辑了主题。我是由adobe illustrator创建的,并已将其作为资源包含在项目中。@MathivananKPI按照选项2进行了操作,效果良好。我想知道是visual studio导致了这一点还是sharpvectors?我害怕这些东西,因为它不会报告任何错误。我想知道为什么这里需要包URI前缀。如果将Image元素的Source属性设置为程序集资源路径,则可以在XAML中忽略它,因为XAML解析器会自动添加它。Source=/Create.svg可能有用吗?我按照选项2做了,它可以工作。我想知道是visual studio导致了这一点还是sharpvectors?我害怕这些东西,因为它不会报告任何错误。我想知道为什么这里需要包URI前缀。如果将Image元素的Source属性设置为程序集资源路径,则可以在XAML中忽略它,因为XAML解析器会自动添加它。Source=/Create.svg是否可行?