Windows Phone - 如何使用AccentColors.dll

时间:2013-01-26 17:19:37

标签: windows-phone-8 windows-phone

对于我的应用,我需要Windows Phone 8的新强调色。我在目录C:\ Program Files(x86)\ Microsoft SDKs \ Windows Phone \ v8.0 \ Design \ AccentColors中找到了AccentColors.dll。

我该如何使用这个lib?

2 个答案:

答案 0 :(得分:3)

AccentColors.dll不适合第三方开发人员使用。这可能是为Blend添加的设计时支持的一部分。

你究竟想做什么?

所有默认重音颜色都列在该文件夹中的文件中。您可以使用PhoneAccentColor / PhoneAccentBrsh获取活动重音。您可以通过更改应用程序c'tor中的App.Resource来覆盖PhoneAccentColor。

答案 1 :(得分:3)

如果需要使用代码中的颜色,可以添加一个模仿Colors类的新类。然后你可以轻松使用它。

public sealed class AccentColors
{
    public static Color Cobalt { get { return Color.FromArgb(255, 0, 80, 239); } }
    public static Color Lime { get { return Color.FromArgb(255, 164, 196, 0); } }
    public static Color Green { get { return Color.FromArgb(255, 96, 169, 23); } }
    public static Color Emerald { get { return Color.FromArgb(255, 0, 138, 0); } }
    public static Color Teal { get { return Color.FromArgb(255, 0, 171, 169); } }
    public static Color Cyan { get { return Color.FromArgb(255, 27, 161, 226); } }
    public static Color Indigo { get { return Color.FromArgb(255, 106, 0, 255); } }
    public static Color Violet { get { return Color.FromArgb(255, 170, 0, 255); } }
    public static Color Pink { get { return Color.FromArgb(255, 244, 114, 208); } }
    public static Color Magenta { get { return Color.FromArgb(255, 216, 0, 115); } }
    public static Color Crimson { get { return Color.FromArgb(255, 162, 0, 37); } }
    public static Color Red { get { return Color.FromArgb(255, 229, 20, 0); } }
    public static Color Orange { get { return Color.FromArgb(255, 250, 104, 0); } }
    public static Color Amber { get { return Color.FromArgb(255, 240, 163, 10); } }
    public static Color Yellow { get { return Color.FromArgb(255, 216, 193, 0); } }
    public static Color Brown { get { return Color.FromArgb(255, 130, 90, 44); } }
    public static Color Olive { get { return Color.FromArgb(255, 109, 135, 100); } }
    public static Color Steel { get { return Color.FromArgb(255, 100, 118, 135); } }
    public static Color Mauve { get { return Color.FromArgb(255, 118, 96, 138); } }
    public static Color Sienna { get { return Color.FromArgb(255, 122, 59, 63); } }
}

在您的项目中,您可以执行

var coblat = AccentColors.Cobalt;

如果要向用户显示颜色,这是一个简单的示例。首先添加一种方法,将强调色变成一个集合。

public static IEnumerable<Color> AsEnumerable()
{
    yield return Cobalt;
    yield return Lime;
    yield return Green;
    yield return Emerald;
    // and the rest
}

然后创建一个ListBox来显示颜色。

<ListBox x:Name="ColorPicker">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Rectangle Fill="{Binding}" Width="100" Height="100"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

最后将ItemsSource设置为颜色

// In code behind
ColorPicker.ItemsSource = AccentColors.AsEnumerable();