我需要一些关于如何将矢量图像数据添加到我的WPF应用程序的建议。截至目前,我只是将图像信息作为StreamGeometry添加到UserControl资源。例如:
<UserControl.Resources>
<ResourceDictionary>
<StreamGeometry x:Key="ProtoLeaf" >m 451.45 512 c 17.06 0 30.43 -13.86 30.43 -31.56 V 31.55 C 481.87 13.86 468.51 0 451.44 0 A 32.94 32.94 0 0 0 434.99 4.52 L 46.29 229 c -10.13 5.85 -16.18 16 -16.18 27 0 11 6 21.2 16.18 27 l 388.7 224.48 a 32.92 32.92 0 0 0 16.45 4.52 z</StreamGeometry>
<StreamGeometry x:Key="ProtoFrog">m 51.45 512 c 17.06 0 30.43 -13.86 30.43 -31.56 V 31.55 C 481.87 13.86 468.51 0 451.44 0 A 32.94 32.94 0 0 0 434.99 4.52 L 46.29 229 c -10.13 5.85 -16.18 16 -16.18 27 0 11 6 21.2 16.18 27 l 388.7 224.48 a 32.92 32.92 0 0 0 16.45 4.52 z</StreamGeometry>
</ResourceDictionary>
</UserControl.Resources>
然后我将这些用于我的路径对象。
<Viewbox Margin="97,10,10,10">
<Canvas x:Name="Pond" Background="#FF58CFF1" Margin="4" Height="360" Width="640">
<Path x:Name="Leaf1" Tag="1" Height="80" Width="80" Canvas.Left="50" Canvas.Top="50" RenderTransformOrigin="0.5,0.5" Stretch="Uniform" Fill="#FF30F012" Data="{DynamicResource ProtoLeaf}">
</Path>
我创建了几个相当大的矢量图像,我可以使用StreamGeometry数据,但这是巨大的。成千上万的线条,它打破了视觉工作室的语法突出。我真的不知道我该怎么办?
答案 0 :(得分:1)
因此在考虑了grek40的评论并在这个方向上做了一些研究后,我提出了以下解决方案。我只是添加了MergedDictionaries语句并引用了一个外部文件,其中包含了我的所有SteamGeometry信息。
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Resources/imagefiles/VectorCollection.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>