C# 在WP8.1通用应用程序中使用PhoneAccentBrush
我在特定于解决方案WP8.1部分的页面中有一个listview,其中标准的C# 在WP8.1通用应用程序中使用PhoneAccentBrush,c#,winrt-xaml,win-universal-app,C#,Winrt Xaml,Win Universal App,我在特定于解决方案WP8.1部分的页面中有一个listview,其中标准的ObservableCollection作为itemssource。我想突出显示选中的项目,目前它只使用一个textblock的datatemplate。基本WP8.1控件似乎仅在W8.1版本中支持此功能 遵循这里提出的解决方案; 我设法让它以指定的颜色突出显示,但我真的希望能够绑定到手机的强调颜色,我确信我能够在WP8.0中绑定到这一颜色,但该资源在universal应用程序的页面中不可用 目前,我已将“红色”的直接颜色
ObservableCollection
作为itemssource。我想突出显示选中的项目,目前它只使用一个textblock的datatemplate。基本WP8.1控件似乎仅在W8.1版本中支持此功能
遵循这里提出的解决方案;
我设法让它以指定的颜色突出显示,但我真的希望能够绑定到手机的强调颜色,我确信我能够在WP8.0中绑定到这一颜色,但该资源在universal应用程序的页面中不可用
目前,我已将“红色”的直接颜色规格替换为
<ColorAnimation Duration="0" Storyboard.TargetName="myback" Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" To="{ThemeResource PhoneChromeColor}"/>
它可以突出项目,但显然不是我想要的颜色
我可以访问xaml中的
PhoneAccentBrush
?有没有更好的方法来实现我的目标?我不是一个专业的开发人员,所以一些“用户友好”的指导将是最有帮助的。谢谢。可以通过XAML中的{StaticResource PhoneAccentBrush}
获得PhoneAccentBrush
,我想首先同意@Scoregraphic是正确的。您的错误消息是您独有的。也就是说,你应该知道窗户上的强调笔刷总是紫色的。因此,使用强调笔刷没有什么价值
您可以通过特定于设备的样式来克服这一问题。这意味着你可以在你的手机应用程序中使用强调笔刷,但在你的Windows应用程序中,你可以添加任何你想要的有意义的颜色的逻辑
我将在此处详细讨论特定于设备的样式:
祝你好运 ColorAnimation的
To
属性需要一个Color类型的对象PhoneAccentBrush
是SolidColorBrush类型
这里有两个建议(我还没有测试过,但我认为它们应该有效):
SolidColorBrush
类型的对象有一个类型为Color
的属性Color
,可以像这样使用{Binding Color,Source={StaticResource PhoneColorBrush}
PhoneAccentColor
静态资源,它基本上是PhoneAccentBrush
笔刷的颜色,如下所示:{StaticResource PhoneAccentColor}
<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="myback" Storyboard.TargetProperty="(Border.Background)">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneAccentBrush}"/>
</ObjectAnimationUsingKeyFrames>
我希望其中一些对你有用!:) intellisense在“to”属性中无法使用该特定资源。我尝试了任何方法,并收到以下错误异常消息。
Message“未能将属性'Windows.UI.Xaml.Media.Animation.ColorAnimation.to'分配给',因为无法将类型'Windows.UI.Xaml.Media.SolidColorBrush'分配给类型'Windows.UI.Color'。[行:186位置:201]。”string
您真的需要设置颜色还是可以只设置画笔?我不确定我是否理解您的意思,因为我看不到Chubosaurus提供的xaml解决方案(在我链接的页面中)中存在使用画笔的可能性?你能详细说明一下吗?标记为答案,替换为谢谢Jerry,上面Yasen的答案让我得到了我想要的结果,但是标记你的答案也很有帮助,因为我没有偶然发现这个资源,我一定会努力解决它们。