【发布时间】:2009-06-17 13:57:58
【问题描述】:
我有一个在 XAML 中定义的矢量图像。在 WPF 应用程序中使用此资源的正确方法是什么?
我想在自己的 XAML 文件中包含矢量图像,然后将图像添加到我的应用程序中的其他用户控件。我的 XAML 矢量图像中的顶级元素应该是什么?如何在其他用户控件中引用该图像?
【问题讨论】:
标签: wpf xaml vector-graphics
我有一个在 XAML 中定义的矢量图像。在 WPF 应用程序中使用此资源的正确方法是什么?
我想在自己的 XAML 文件中包含矢量图像,然后将图像添加到我的应用程序中的其他用户控件。我的 XAML 矢量图像中的顶级元素应该是什么?如何在其他用户控件中引用该图像?
【问题讨论】:
标签: wpf xaml vector-graphics
http://learnwpf.com/post/2006/06/04/How-do-I-Include-Vector-Based-Image-Resources-in-my-WPF-Application.aspx 解释了如何做到这一点。
<ContentControl Template="{StaticResource Credit-Card}" />
【讨论】:
在 WPF 和 Silverlight 中以可重用的方式使用矢量图形是极其困难的。
这两个 StackOverflow 问题讨论了一些可用选项:
WPF What is the correct way of using SVG files as icons in WPF
阅读完这些问题和答案后,我认为最好的解决方案是坚持使用像 PNG 这样的位图/光栅格式,直到 Microsoft 决定支持 SVG。
【讨论】:
以下是如何以可重复使用的样式方式进行操作:
https://github.com/alansingfield/VectorIcon/blob/master/README.md
<Style x:Key="CarIcon"
TargetType="local:VectorIcon">
<Style.Setters>
<Setter Property="Geometry">
<Setter.Value>
<PathGeometry Figures="M18,18H6V6H18M18,4H6A2,2 0 0,0 4,6V18A2,2 0 0,0 6,20H18A2,2 0 0,0 20,18V6C20,4.89 19.1,4 18,4Z" />
</Setter.Value>
</Setter>
</Style.Setters>
</Style>
<local:VectorIcon Style="{StaticResource CarIcon}" Foreground="Green"/>
【讨论】: