如何正确地重用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 ,如附图所示
并访问此链接以供参考