【问题标题】:How to reuse icons (xaml-paths) in a large project?如何在大型项目中重用图标(xaml-paths)?
【发布时间】:2012-01-12 14:46:28
【问题描述】:

我参与了一个大型 Silverlight 4 项目的开发,其中我们将有一组符号,应该在 GUI 的不同部分使用(参见下面的示例)。

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

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

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

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

【问题讨论】:

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


    【解决方案1】:
    <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>
    

    然后将 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/

    【讨论】:

    • 这个答案更好,我只是习惯于使用按钮来进行类似的操作,以便稍后进行用户交互。 ContentControl 是你的朋友。
    • 我以前遇到过这种方法的问题:特别是 Blend 似乎不想正确加载路径数据。不幸的是,我没有更好的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 2018-02-28
    • 2023-01-18
    相关资源
    最近更新 更多