在WP8.1通用应用程序中使用PhoneAccentBrush

时间:2015-02-05 06:22:46

标签: c# winrt-xaml win-universal-app

我在特定于解决方案的WP8.1部分的页面中有一个列表视图,标准ObservableCollection作为项目源。我想突出显示所选项目,目前只使用一个文本块的datatemplate。基本WP8.1控件似乎支持此功能,仅在W8.1版本中支持。

按照此处提供的解决方案; How to change color of the selected ListView item [WP8.1] 我设法用指定的颜色突出显示它,但我真的希望能够绑定到手机的强调颜色,我确信我能够在WP8.0中绑定到它,但资源在通用应用程序的页面中不可用。

目前我用

取代了'red'的直接颜色规格
<ColorAnimation Duration="0" Storyboard.TargetName="myback" Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" To="{ThemeResource PhoneChromeColor}"/>

用于突出显示该项目,但显然不是我想要的颜色。

我可以访问xaml中的PhoneAccentBrush吗?有没有更好的方法来实现我的目标?我不是一个专业的开发人员,所以一些“用户友好”的指导将是最有帮助的。感谢。

3 个答案:

答案 0 :(得分:2)

To的{​​{1}}属性需要Color类型的对象。 ColorAnimation属于SolidColorBrush类型。

以下是两条建议(我没有测试过,但我认为它们应该有效):

  1. PhoneAccentBrush类型的对象具有SolidColorBrush类型的属性Color,您可以像Color一样使用。

  2. 您还可以使用{Binding Color, Source={StaticResource PhoneColorBrush}}静态资源,它基本上是PhoneAccentColor画笔的颜色,如下所示:PhoneAccentBrush

  3. 另外,如果你不是真的动画颜色,你可以用这样的东西改变整个画笔:

    {StaticResource PhoneAccentColor}

    我希望其中一些对你有用! :)

答案 1 :(得分:1)

我想首先同意@Scoregraphic是正确的。您的错误消息是您独有的。话虽这么说,你应该知道Windows上的重点画笔总是紫色的。因此,使用重点画笔几乎没有价值。

您可以使用特定于设备的样式来克服此问题。这意味着您可以在手机应用程序中使用重音笔刷,但在Windows应用程序中,您可以添加任何您希望获得有意义颜色的逻辑。

我在这里讨论特定于设备的样式:

  

http://channel9.msdn.com/series/Developing-Universal-Windows-Apps-with-C-and-XAML/03#time=27m00s

祝你好运!

答案 2 :(得分:0)

PhoneAccentBrush可通过XAML中的{StaticResource PhoneAccentBrush}

获取