我希望在xaml中有一个画布,我放置一些图标.这些图标是像这样的多边形:
<Polygon Points="0,0 20,50, 0,50 20,0" Fill="Red" Stretch="Uniform"/>
Run Code Online (Sandbox Code Playgroud)
但是我想多次使用一个图标,所以我想在资源中定义它并通过引用将它包含在某个位置的画布中,如下所示:
<Page.Resources>
<Polygon Key="icon1" Points="0,0 20,50, 0,50 20,0" Fill="Red" Stretch="Uniform"/>
<Polygon Key="icon2" Points="0,0 10,30, 10,60 20,0" Fill="Blue" Stretch="Uniform"/>
...
</Page.Resources>
<Canvas>
<Polygon Reference="icon1" X="0" Y="0"/>
<Polygon Reference="icon2" X="10" Y="10"/>
<Polygon Reference="icon1" X="20" Y="20"/>
...
</Canvas>
Run Code Online (Sandbox Code Playgroud)
我在http://www.codeproject.com/KB/WPF/GraphicInXAMLAndWPF.aspx 上找到了一个可能的解决方案,其中多边形存储在绘图图像中,但似乎需要很多开销.
有人有更好的想法如何解决这个问题?
使用XAML/WPF做一些简单的事情似乎有很多问题 - 我使用像Rectangle和Ellipse这样的形状创建了一些基于XAML的图像来创建我需要应用程序的其他部分使用的图标 - 但我不能似乎找到了如何做到这一点 - 我似乎能够在资源字典中存储Canvas,但无法在任何其他窗口中使用它.这是怎么做的 - 这些是我想要在整个项目中使用的两三个形状的简单图像!
图像也必须可调整大小 - 我知道如何存储路径,但是这些形状包含我想保留的渐变样式,而且我不知道矩形如何转换为路径和颜色数据.
谢谢!