【发布时间】:2010-12-08 12:20:34
【问题描述】:
我想在一些 WPF 应用程序/库中重用一些 XAML 片段作为图像。
问题的背景如下:
在 WPF 应用程序中重用位图图像很容易。图片可以作为资源添加,我可以在 XAML 的很多地方使用<Image Source="packURI"/>,所以图片是一样的。
但我希望有可能对矢量图像执行相同的操作。图像本身可以表示为Path,但我不能重复使用相同的Path 作为资源,因为禁止在多个不同的地方(可能来自多个 UI 线程)简单地使用它(UI 元素只能有一个逻辑父母)。
此外,如果我想从多个Paths 构建“图像”,问题会变得更加复杂,请使用Canvas。或者一些任意的 XAML 代码。
我尝试将Style 用于Path,因此图像以这种方式表示:
<Path Style={StaticResource VectorImage1}/>
这似乎是一种可重用的方式,但我担心两个问题:
- 如果矢量图像的实现从
Path更改为(例如)Canvas,我不仅需要在样式中替换它,而且在使用它的源代码中的任何地方都需要替换它。 - 使用样式定义路径似乎过于冗长。
- 我认为没有办法概括这种使用
Canvas或任意XAML 代码的方法。 - 语法似乎很不自然。
还有其他方法可以通过定义UserControl 来获得可重用的 XAML 片段,但为每个矢量图像定义单独的用户控件似乎有点过头了。
是否有更好、更好、正确的方法来定义可重用的 XAML 片段?
【问题讨论】: