12

在 Windows 8 消费者预览版中,您可以个性化您的体验,包括设置“背景颜色”,然后将其用作选定磁贴、应用栏等的背景。因此,选择橙色将意味着橙色重音在 Windows 8 Metro UI 中可见.

我目前正在创作一些自定义控件,并且我希望在我的样式中访问这种颜色,以便用户更改颜色,以便我的应用程序重音相应地重新着色。

我找不到在我的 XAML 中获得这种颜色的方法。期望有一个您可以参考的系统级动态画笔或颜色资源似乎是合理的。

有没有人有任何想法?

4

3 回答 3

7

基于 MSDN 上的这个线程(开始屏幕背景作为我的地铁应用程序背景) - 这是不可用的。

如果 MSDN 线程消失,该站点暂时不可用,或者 Microsoft 移动目录结构并在各处留下孤立链接:Microsoft 员工Rob Kaplan的相关回答说:

Metro 风格应用无法查询开始屏幕背景颜色。

所以可以理解为官方回应这个功能不可用。

于 2012-03-22T19:10:46.710 回答
5

艾伦,

虽然我同意你的观点,如果你计划复杂的图形覆盖,“品牌”概念很有意义,但使用操作系统提供的静态主题画笔获得 Windows Phone 上可用的基本主题颜色是更好的选择应用程序中的基本颜色主题。用户选择该颜色是因为他们觉得它赏心悦目。更重要的是,某些用户可能对一种或多种颜色视而不见,并选择了最佳选项来增强可读性和可访问性。

使用标准配色方案可以让您保持在浅色/深色主题内,并满足许多公司为视障人士提供的所有程序所要求的可访问性标准。

SDK 处于起步阶段,这个重要的特性可能已经被排除在当前的实现之外,因为它还没有为 SDK 的发布做好准备(颜色可能尚未最终确定或某些设备上的主题兼容性仍然存在正在开发中)。

通过添加/减去值以获取当前主题颜色,从提供给您的现有主题画笔(例如 ProgressBarForegroundThemeBrush)中派生主题颜色并不难。

我的建议是尽可能坚持主题风格,以确保您的应用程序将保持最新状态,无论操作系统如何更改。

自 2010 年 5 月以来,我一直是 Windows Phone 程序员。

于 2012-12-07T15:58:21.423 回答
2

There are some undocumented APIs in UxTheme.dll that retrieve theme colours. If you use these functions and submit your app to the Windows Store it will fail certification, and in general it's a bad idea to rely on undocumented functions anyway. Still, for those interested in getting these values, I wrote about the process.

于 2013-01-01T13:24:45.623 回答