WPF-我的相对路径在XAML界面中不起作用,为什么?

时间:2019-07-15 17:36:06

标签: c# wpf xaml url relative-path

我正在使用WPF / XAML接口。我想使用SharpVector.Reloaded包在Image组件中显示一个SVG图像文件。源文件位于我的硬盘上。

如果我使用文件的绝对路径:

<Image x:Name="imImage" Grid.Column="1" Source="{svgc:SvgImage Source=W:/Labo/WPF/SVG/SVG/Resources/Images/Ghost.svg}"/>

一切正常,图像可见。

现在,我想将路径相对。我尝试了我能想到的所有方法,但是没有办法!即使是下面的代码,通常也可以与例如Source属性,在这里不起作用:

<Image x:Name="imImage" Grid.Column="1" Source="{svgc:SvgImage Source=pack://siteoforigin:,,,/Resources/Images/Ghost.svg}"/>

这样做,我会得到9个错误的列表:

Error   XDG0052 The unnamed argument "" must appear before named arguments. SVG MainWindow.xaml 18  
Error   XLS0112 Expected ''.    SVG MainWindow.xaml 18  
Error   XLS0414 The type '' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.    SVG MainWindow.xaml 18  
Error   XLS0112 Expected ''.    SVG MainWindow.xaml 18  
Error   XLS0414 The type '' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.    SVG MainWindow.xaml 18  
Error   XLS0112 Expected ''.    SVG MainWindow.xaml 18  
Error   XLS0414 The type '' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.    SVG MainWindow.xaml 18  
Error   XLS0112 Expected '}'.   SVG MainWindow.xaml 18  
Error   XLS0112 Expected '

那么有人可以向我解释我在这里做错了什么,在上述情况下声明相对路径的秘密到底是什么?

还有一个附加的问题,为什么WPF需要使相对路径的使用变得如此复杂?

1 个答案:

答案 0 :(得分:1)

您需要在包URI周围加上单引号。

XAML解析器没有意识到您正在尝试将Source设置为全部,因此会出错。

<Image x:Name="imImage" Grid.Column="1" Source="{svgc:SvgImage Source='pack://siteoforigin:,,,/Resources/Images/Ghost.svg'}"/>

我刚刚尝试过,它就可以工作。