如何正确地重用wpf中的矢量图像

X问题:

我想在WPF中使用矢量图形。

我有一堆SVG文件,我可以使用Inkscape将其转换为XAML。 产生的xaml是包含Path等的ViewBox / Canvas ResourceDictionary 。字典被合并到App.xaml ,我可以使用密钥来访问它们。

问题:如何使用这样的图像 看起来我没有正确使用它们。

这是我如何使用它们

  

但看起来我只能使用一次 (在一个地方)! 尝试在多个位置同时使用该图像将从之前的位置移除它或将抛出

System.ArgumentException:在附加到新的父Visual之前,必须断开指定子项与当前父Visual的连接。

Y问题

我想显示一个矢量图像列表。 我这样显示它们

          

视图模型

 public class ViewModelSomeWindow : INotifyPropertyChanged { public class MyImage { public object Image { get; set; } } private ObservableCollection _images; public ObservableCollection Images { get { return _images; } set { _images = value; OnPropertyChanged(); } } ... } 

并且像这样添加项目

 Images.Add(new MyImage() { Image = App.Current.Resources["MyImageResourceKey"] }); 

问题:当对第二个项目使用相同的图像( "MyImageResourceKey" )时,第一个项目显示(空白)图像。 如果某个地方已经使用StaticResource显示了图像,那么添加项目将抛出ArgumentException

PS:我需要解决Y problem ,但也许我没有正确使用矢量图形。

请在路径中使用x:shared = false ,如附图所示

在此处输入图像描述

并访问此链接以供参考