2016-09-09 6 views
0

[UWP] ich eine SolidColorBrush Ressource von SystemAccentColor Farbe erstellt, ich einen Konverter hinzuzufügen versucht, die Farbe leichter zu machen, aber es erst zur Laufzeit arbeiten ... Ich sehe die Farbe heller, aber wenn ich gehen In den Einstellungen ändern OS und ich die Akzentfarbe, sie ändern sich in anderen Texten, während meine Farbe mit Konverter nicht funktioniert. Gibt es eine Methode, um meine Ressource zu aktualisieren, wenn ich die Systemakzentfarbe ändere?SystemAccentColor + Converter

In meiner App:

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

Resource:

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

AuraAccent Arbeit in Laufzeit und wenn ich die Akzentfarbe ändern.

AuraAccentLight1 Arbeit im laufenden Betrieb aber nicht funktioniert, wenn ich die Akzentfarbe ändern.

So funktioniert tatsächlich: http://sharex.lucapatera.it/uploads/2016-08-31_19-34-32.mp4

+0

Was haben Sie schon versucht? Wenn Sie Ihren (relevanten) Code in Ihrer Frage teilen, erleichtert dies die Bereitstellung einer nützlichen Antwort. –

+0

Sehen Sie mein verbundenes Video zu verstehen – Lukasss93

+0

Wie erhellen Sie die Farbe im Konverter? Können wir diesen Code sehen? – AVK

Antwort

0

Inspiriert von AVK Naidu, ich habe auf diese Weise gelöst:

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

Vielen Dank an alle

Endergebnis: http://sharex.lucapatera.it/uploads/2016-09-10_19-33-45.gif

+0

Schön. Ich bin froh, dass ich helfen konnte. – AVK

+0

Ich würde vorschlagen, dass Sie Ihr Ende app.xaml Änderung, die Sie an diese Antwort gemacht haben, und markieren Sie sie als eine Antwort, so dass es für andere hilfreich sein wird. – AVK

+0

Ich kann es nicht tun. Weil: "Du kannst deine eigene Antwort in 22 Stunden annehmen". Ich bin neu auf Stackoverflow :) – Lukasss93

0

Ich ging durch einige der Ressourcenverzeichnis Dateien und bemerkte, dass das Wörterbuch geladen wird, wenn App zunächst Lasten. Die Änderungen für die aktuelle Themenressource werden aktualisiert, aber keine benutzerdefinierten Pinsel (in Ihrem Fall AuraAccentLight1, da ein Konverter verwendet wird).

Das habe ich gemacht. Anstatt ein ResourceDictionary mit einer Shade-Farbe zu erstellen, die nur einmal funktioniert, binde ich das zweite Grid an das erste Grid, das sagt, wenn die Farbe des ersten Grids geändert wird, sollte auch die zweite Grid Color aktualisiert werden.

So unten ist mein 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> 

Lassen Sie mich wissen, ob das hilft.