Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在WP8.1通用应用程序中使用PhoneAccentBrush_C#_Winrt Xaml_Win Universal App - Fatal编程技术网

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

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应用程序的页面中不可用 目前,我已将“红色”的直接颜色

我在特定于解决方案WP8.1部分的页面中有一个listview,其中标准的
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的答案让我得到了我想要的结果,但是标记你的答案也很有帮助,因为我没有偶然发现这个资源,我一定会努力解决它们。