2013-10-17 59 views
2

我目前工作包含的项目列表中的应用,每一个项目代表从各种来源(推特,脸谱,电子邮件等..)WPF路径复制

每个发送到用户的消息项目包含一个小矢量图形(路径),可帮助用户识别消息的来源。

enter image description here

为了得到这个矢量图像正确地出现在我打上它与X资源的每个项目:共享=“false”属性导致路径的新实例被创建每一条消息。

这一切工作正常,但我不禁感觉创建同一路径的多个实例似乎是一种浪费。我无法使用位图,因为项目更改大小,因此需要使用矢量图像。

我的问题是这样的:任何人都有更好的方式来展示从同一资源的多个路径,而不必生成路径对象的新实例?

+4

考虑将Path的几何存储为资源,然后从各个Path实例的Data属性引用该资源。 –

+0

使用.Net Reflector它看起来像形状(基础为路径)克隆几何,如果您将它的Stretch属性设置为除System.Windows.Media.Stretch.None之外的任何其他类型。我想你的想法意味着我们只能得到每个消息的1份数据而不是2份。 – Andy

回答

0

我不认为这是一个糟糕的设计或实施。 PathUIElement,因此只能有一个Parent(这就是make x:Shared = false的原因),并且如果要使用矢量图形,则必须使用Path。 因此,每个父母都将拥有自己的子女UIElement,即此处的路径。

想一想,如果我有一个窗体有多个输入控件用于数据输入并且有多个按钮来保存每组数据。在这种情况下,我将拥有很多儿童按钮的实例,即使他们都只是在说“保存”它们。所以我不认为具有相似几何体的Path的多个实例是一个问题