0

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

我怎样才能使用这个库?

4

2 回答 2

3

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

你到底想做什么?

所有默认强调色都列在该文件夹中的文件中。您可以使用 PhoneAccentColor/PhoneAccentBrsh 获得活跃的口音。您可以通过更改应用程序 c'tor 中的 App.Resources 来覆盖 PhoneAccentColor。

于 2013-01-26T23:28:39.347 回答
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();
于 2013-01-27T03:25:57.180 回答