在WPF应用程序中使用XAML矢量图形

16

我有一个在XAML中定义的矢量图像。在WPF应用程序中,正确的使用资源的方式是什么?

我想要将矢量图像放在自己的XAML文件中,然后将图像添加到应用程序中的其他UserControl中。我的XAML矢量图像中应该是什么顶层元素?如何在其他UserControl中引用该图像?


参见:https://dev59.com/dXNA5IYBdhLWcg3wEZaT - Roman Starkov
3个回答

8

这篇文章介绍了如何实现矢量图像资源的WPF应用程序中的使用。

<ContentControl Template="{StaticResource Credit-Card}" />

1
这里不提供解释(这是一个答案网站),并且链接中有几个已经失效了。 - DefenestrationDay

1
这是如何以可重复使用的样式化方式实现它的方法:

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"/>


1

1
“极其难以以可重复使用的方式使用矢量图形”是什么意思? - sourcenouveau
1
如果您想在应用程序中的多个位置重复使用图标,则需要创建一个用户控件来封装画布、绘图或路径向量。如果您需要更改图标,则需要修改此控件。相比之下,引用PNG或BMP图像文件并根据需要更新它要容易得多。 - dthrasher
3
替换一个XAML文件或替换一个BMP文件。我觉得它们之间没有太大的区别。但如果你说有更多和可能更好的BMP编辑器,就是正确的,因为有比XAML编辑器更多的BMP编辑器。 - Lars Truijens
1
也许“可重用”不是一个好的词选择。在XAML中使用矢量图形需要比使用光栅图像多几个步骤。除非平滑缩放是核心要求,否则我认为这不值得权衡。(但随着工具的改进,这可能会改变。) - dthrasher
@dthrasher “在XAML中使用矢量图形……”这样说起来有点奇怪,考虑到WPF/Silverlight是基于XAML的。 - Jacques
提供的链接是正确答案,但就可用性和难度而言,位图文件和矢量图像文件是可以互换的。没有什么强制你在窗口 XAML 中嵌入矢量 XAML。 - Tim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接