gpt4 book ai didi

c# - 如何正确地在 wpf 中重用矢量图

转载 作者:行者123 更新时间:2023-11-30 16:57:01 28 4
gpt4 key购买 nike

X问题:

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

我有一堆 SVG 文件,我可以使用 Inkscape 将其转换为 XAML。生成的 xaml 是 ResourceDictionaryViewBox/Canvas 包含 Path 等。字典合并到 App。 xaml,我可以使用 key 访问它们。

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

我是这样用的

<Viewbox Child="{StaticResource MyImageResourceKey}" Width="100" Height="100"/>

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

System.ArgumentException: Must disconnect specified child from current parent Visual before attaching to new parent Visual.

Y问题

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

<ItemsControl ItemsSource="{Binding Images}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Viewbox Width="100" Height="100">
<ContentPresenter Content="{Binding Image}"/>
</Viewbox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>

View 模型

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"] });

问题:当对第二个项目使用相同图像(“MyImageResourceKey”)时,第一个项目显示(空白)图像。如果图像已经在某处使用 StaticResource 显示,则添加项目将抛出 ArgumentException

P.S.:我需要解决Y问题,但也许我没有正确使用矢量图形。

最佳答案

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

enter image description here

并访问此链接以获取 reference

关于c# - 如何正确地在 wpf 中重用矢量图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27172730/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com