添加一个非常大的矢量图像

时间:2018-01-25 12:27:37

标签: wpf vb.net xaml

我需要一些关于如何将矢量图像数据添加到我的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数据,但这是巨大的。成千上万的线条,它打破了视觉工作室的语法突出。我真的不知道我该怎么办?

1 个答案:

答案 0 :(得分:1)

因此在考虑了grek40的评论并在这个方向上做了一些研究后,我提出了以下解决方案。我只是添加了MergedDictionaries语句并引用了一个外部文件,其中包含了我的所有SteamGeometry信息。

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Resources/imagefiles/VectorCollection.xaml"></ResourceDictionary>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>