可重复使用的多边形
我想要在 xaml 中放置一些图标的画布。这些图标是像这样的多边形:
<Polygon Points="0,0 20,50, 0,50 20,0" Fill="Red" Stretch="Uniform"/>
但是我想多次使用一个图标,所以我想在资源中定义它,并通过引用将其包含到画布中的某个位置,就像这样:
<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>
我找到了一个可能的解决方案http://www.codeproject.com/KB/WPF/GraphicInXAMLAndWPF.aspx其中多边形存储在绘图图像中,但似乎开销太大。
有人有更好的想法如何解决这个问题吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
也许最明显和最灵活的方法是创建一个 UserControl。您可以从解决方案资源管理器添加 UserControl 类型的新文件,将多边形添加到 Visual Studio 将创建的“LayoutRoot”网格。然后,您可以根据需要创建任意数量的用户控件实例!
但是,检查 SO 上的类似问题,您可以使用内容控件来渲染多边形,注意,您必须使用 x:Shared="false" 来确保您不会每次都尝试重复使用相同的多边形。
请参阅以下内容:
矢量图像作为可重用的 XAML 片段
Probably the most obvious and flexible method is to create a UserControl. You can add a new file of type UserControl from the solution explorer, add your Polygon to the 'LayoutRoot' Grid that Visual Studio will create. You can then create as many instances as you like of your user control!
However, checking for similar problems on SO, you could use a content control to render the polygon, note, you would have to use x:Shared="false" to ensure that you are not trying to re-use the same polygon each time.
See the following:
Vector image as reusable XAML fragment