如何在大型项目中重用图标(xaml-paths)?

时间:2012-01-12 14:46:28

标签: silverlight xaml expression-blend expression-blend-4

我是开发更大规模的Silverlight 4项目的一部分,我们将有一组符号应该在GUI的不同部分使用(参见下面的示例)。

这些图标直接在Blend中由多个路径构成,可以单独使用,也可以在usercontrols中使用不同的视觉状态(在多个上下文中使用相同的图标)。为了便于更改单个图标的设计,并让它在整个应用程序中传播,存储这些图标的最佳方法是什么?

我尝试从它们创建样式(右键单击 - >编辑样式..),但这只允许我创建一个空样式,没有任何路径数据。手动将包含路径的网格的xaml代码放入字典中也没有帮助,我缺少什么?

如何以简单的方式保存路径和样式(颜色,笔触,填充等)信息,最好是在资源字典中,这样我可以轻松地在用户控件和其他地方重用它们,同时保持简单的更新? / p>

我正在尝试重复使用的图标示例:

enter image description here

1 个答案:

答案 0 :(得分:8)

<Style x:Key="MyIcon" TargetType="ContentControl">
        <Setter Property="ContentTemplate">
            <Setter.Value>
                <DataTemplate>
                    <Path Stretch="Fill" Fill="Red" Data="F1 M 24,13C 27.1521,13 29.9945,14.3258 32,16.4501L 32,11L 35,14L 35,22L 27,22L 24,19L 29.5903,19C 28.217,17.4656 26.2212,16.5 24,16.5C 20.1969,16.5 17.055,19.3306 16.5661,23L 13.0448,23C 13.5501,17.3935 18.262,13 24,13 Z M 24,31.5C 27.8031,31.5 30.945,28.6694 31.4339,25L 34.9552,25C 34.4499,30.6065 29.738,35 24,35C 20.8479,35 18.0055,33.6742 16,31.5499L 16,37L 13,34L 13,26L 21,26L 24,29L 18.4097,29C 19.783,30.5344 21.7787,31.5 24,31.5 Z "/>
                </DataTemplate>
            </Setter.Value>
        </Setter>
    </Style>

然后使用带有contentcontrol类型(或派生词)的样式:

<ContentControl Style="{StaticResource MyIcon}" Width="20" Height="20" Grid.Row="0"/>

所有样式都可以在某些资源字典中: 这篇文章内容非常丰富: http://blogs.infosupport.com/tips-for-effective-usage-of-resource-dictionaries-in-silverlight-and-wpf/