C# 如何正确重用wpf中的矢量图像 X问题:
我想在WPF中使用矢量图形 我有很多SVG文件,我可以使用Inkscape将它们转换成XAML。生成的xaml是C# 如何正确重用wpf中的矢量图像 X问题:,c#,wpf,xaml,vector-graphics,C#,Wpf,Xaml,Vector Graphics,我想在WPF中使用矢量图形 我有很多SVG文件,我可以使用Inkscape将它们转换成XAML。生成的xaml是ResourceDictionary,其中ViewBox/Canvas包含路径,等等。字典被合并到App.xaml中,我可以使用键访问它们 问题:如何使用这些图像?看起来我没有正确使用它们 下面是我如何使用它们 <Viewbox Child="{StaticResource MyImageResourceKey}" Width="100" Height="100"/> 问
ResourceDictionary
,其中ViewBox
/Canvas
包含路径
,等等。字典被合并到App.xaml
中,我可以使用键访问它们
问题:如何使用这些图像?看起来我没有正确使用它们
下面是我如何使用它们
<Viewbox Child="{StaticResource MyImageResourceKey}" Width="100" Height="100"/>
问题:对第二个项目使用相同的图像(“MyImageResourceKey”
)时,第一个项目显示(空白)图像。如果图像已经在某处使用了StaticResource
显示,则添加项将在ArgumentException
上方抛出
注意:我需要解决
Y问题
,但可能我没有正确使用矢量图形。请在路径中使用x:shared=false,如附图所示
也可以访问此链接在路径中使用x:shared=false,也可以访问此链接。就是这样,非常感谢@HeNeaKiSurPall考虑将你的评论作为答案添加,因此问题可以被标记为答案。@ NawedNabiZada请检查答案。谢谢:
<ItemsControl ItemsSource="{Binding Images}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Viewbox Width="100" Height="100">
<ContentPresenter Content="{Binding Image}"/>
</Viewbox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
public class ViewModelSomeWindow : INotifyPropertyChanged
{
public class MyImage
{
public object Image { get; set; }
}
private ObservableCollection<MyImage> _images;
public ObservableCollection<MyImage> Images
{
get { return _images; }
set { _images = value; OnPropertyChanged(); }
}
...
}
Images.Add(new MyImage() { Image = App.Current.Resources["MyImageResourceKey"] });