我想在一些WPF应用程序/库中将一些XAML片段重复使用为图像。
问题的背景如下:
在WPF应用程序中,重用位图图像很容易。可以将图像添加为资源,我可以在许多XAML中使用<Image Source="packURI"/>
,这样图像将是相同的。
但我希望有可能对矢量图像执行相同操作。图像本身可以表示为Path
,但我无法将相同的Path
重用为资源,因为禁止仅仅在几个不同地方(可能来自几个UI线程)使用它(UI元素只能有一个逻辑父级)。
此外,如果我想从几个Path
构建“图像”,则问题变得更加复杂,需要使用Canvas
。或者使用任意的XAML代码。
我尝试使用Path
的Style
,使图像以以下方式表示:
<Path Style={StaticResource VectorImage1}/>
这似乎是一种可重用的方式,但我担心有两个问题:
- 如果矢量图像的实现从
Path
更改为(例如)Canvas
,我不仅需要在样式中替换它,还需要在使用它的源代码中到处替换。 - 使用样式定义路径似乎太冗长。
- 我看不到将此方法泛化以使用
Canvas
或任意XAML代码的方法。 - 语法似乎相当不自然。
还有另一种通过定义UserControl
来获得可重用XAML片段的方法,但为每个矢量图像定义单独的用户控件似乎过度了。
是否有更好、更好的方法来定义可重用的XAML片段呢?
MyVectorImage
移动到单独的XAML资源字典中,但是当我将该字典包含到窗口的MergedDictionaries中时,仍然会收到相同的错误消息。 - Vlad