如何将一堆基于xaml的矢量图像文件合并到一个字典中?

问题描述 投票:0回答:1

是否有自动转换和组合几个基于xaml的对象到VS,Blend甚至第三方应用程序中的单个ResourceDictionary的工具。这是我想要变成资源的矢量图像文件:

<Canvas Width="94.936523" Height="177.207031" Name="AmericanImage">
    <Path Fill="#ff000000" Data="F1 M 67.072266,6.236816 C 67.069336,6.233398 68.373047,2.524414 71.210938,2.522949 C 71.210938,2.521484 75.245117,2.520996 75.248047,2.520996 C 75.248047,2.521484 79.283203,2.521484 79.284180,2.523926 C 82.116211,2.525391 83.424805,6.233887 83.422852,6.238281 C 83.425781,6.269043 84.953125,42.543457 84.953125,42.543457 L 65.763672,42.540527 C 65.763672,42.540527 67.072266,6.241699 67.072266,6.236816 Z"/>
</Canvas>

右键单击该文件并选择“添加到字典...”之类的内容会很自然,它会自动添加一个密钥并将其插入数据字典中,无论是内联还是链接到文件。有这样的事吗?很难相信ResourceDictionaries必须手动构建。

wpf visual-studio xaml
1个回答
0
投票

有几种可能的方法:

1)数据模板的使用您正在将数据打包在DataTemplate中,然后像这样使用:

<DataTemplate x:Key="TheIcon">
    <Canvas Width="94.936523" Height="177.207031" Name="AmericanImage">
       <Path Fill="#ff000000" Data="F1 M 67.072266,6.236816 C 67.069336,6.233398 68.373047,2.524414 71.210938,2.522949 C 71.210938,2.521484 75.245117,2.520996 75.248047,2.520996 C 75.248047,2.521484 79.283203,2.521484 79.284180,2.523926 C 82.116211,2.525391 83.424805,6.233887 83.422852,6.238281 C 83.425781,6.269043 84.953125,42.543457 84.953125,42.543457 L 65.763672,42.540527 C 65.763672,42.540527 67.072266,6.241699 67.072266,6.236816 Z"/>
     </Canvas>
</DataTemplate>

然后像这样使用

<ContentControl ContentTemplate="{StaticResource TheIcon}"/>

2)几乎相同的方法,但你只在字典中保存几何

<ResourceDictionary>
     <Geometry x:Key="Geometry">
            F1 M 67.072266,6.236816 C 67.069336,6.233398 68.373047,2.524414 71.210938,2.522949 C 71.210938,2.521484 75.245117,2.520996 75.248047,2.520996 C 75.248047,2.521484 79.283203,2.521484 79.284180,2.523926 C 82.116211,2.525391 83.424805,6.233887 83.422852,6.238281 C 83.425781,6.269043 84.953125,42.543457 84.953125,42.543457 L 65.763672,42.540527 C 65.763672,42.540527 67.072266,6.241699 67.072266,6.236816 Z
        </Geometry>
 </ResourceDictionary>

和用法:

<Canvas Width="94.936523" Height="177.207031" Name="AmericanImage">
  <Path Data="{StaticResource Geometry}"/>
</Canvas>

您也可以将解决方案#2打包到自定义控件中。

© www.soinside.com 2019 - 2024. All rights reserved.