SystemAccentColor + 转换器

SystemAccentColor + Converter

[UWP] 我从 SystemAccentColor 颜色创建了一个 SolidColorBrush 资源,我尝试添加一个转换器来使颜色变亮,但它起作用了仅在运行时...我看到颜色变浅,但如果我进入设置 OS 并更改强调色,它会在其他文本中发生变化,而我的转换器颜色不起作用。当我更改系统强调色时,是否有方法 "update" 我的资源?

在我的应用程序中:

<Grid Background="{ThemeResource AuraAccent}"/>
<Grid Background="{ThemeResource AuraAccentLight1}"/>

资源字典:

<SolidColorBrush x:Key="AuraAccent" Color="{ThemeResource SystemAccentColor}"/>
<SolidColorBrush x:Key="AuraAccentLight1" Color="{Binding Source={ThemeResource SystemAccentColor}, Converter={ThemeResource shade}, ConverterParameter=30}"/>

AuraAccent 在运行时和更改强调色时工作。

AuraAccentLight1 在运行时工作,但在我更改强调色时不起作用。

实际工作原理: http://sharex.lucapatera.it/uploads/2016-08-31_19-34-32.mp4

我查看了几个资源字典文件并注意到字典将在 App 初始加载时加载。将更新实际主题资源的更改,但不会更新自定义画笔(在您的情况下是 AuraAccentLight1,因为它使用转换器)。

这就是我所做的。我没有使用只工作一次的阴影颜色创建 ResourceDictionary,而是将第二个网格绑定到第一个网格,说当第一个网格的颜色发生变化时,第二个网格颜色也应该更新。

下面是我的 XAML

<Grid x:Name="grid" Background="{ThemeResource AuraAccent}"/>
<Grid>
    <Grid.Background>
        <SolidColorBrush Color="{Binding Background.Color, Converter={StaticResource ColorHelper}, ElementName=grid,ConverterParameter=30}" />
    </Grid.Background>
</Grid>

如果有帮助请告诉我。

受到AVK Naidu的启发,我是这样解决的:

<SolidColorBrush x:Key="AuraAccentLight1" Color="{Binding Color, Source={ThemeResource AuraAccent}, Converter={ThemeResource shade}, ConverterParameter=30}"/>

感谢大家

最终结果: http://sharex.lucapatera.it/uploads/2016-09-10_19-33-45.gif