Herstellung eines Bildsteuer Invertzucker seine Farben je nach Thema
-
09-10-2019 - |
Frage
Ich versuche, herauszufinden, wie in meiner Windows Phone-Anwendung eine Image
Kontrolle haben invertieren die Farben auf der Basis der globalen Hintergrundeinstellung (entweder „Dark“ oder „Light“) gewählt durch den Benutzer in Einstellungen-> Themen- > Hintergrund.
Lösung
Es gibt keine integrierte Möglichkeit zu invertieren Bildfarben im Rahmen.
Stattdessen aufgrund des Aufwands dies am Telefon tun, sollen Sie beiden Versionen des Bildes bei Design / Build-Zeit erstellen und dann entscheiden, welche Version Anzeige aus dem Code durch Erfassen Theme Sichtbarkeit und Opazität .
Andere Tipps
Ich muss hinzufügen, dass das, was ich am Ende tat, war eine Fortsetzung dessen, was Matt schrieb.
- Erstellen zwei verschiedene Bilder, die verschiedene Versionen des Bildes (dunkel und hell) und legen sie in der exakt gleichen Position haben
- setzen ihre Sichtbarkeit basierend auf dem Thema Ressource
Der Code sieht wie folgt aus:
<Image Height="30" HorizontalAlignment="Center" Margin="0,0,0,220" Name="imgDark" Stretch="Fill" Visibility="{StaticResource PhoneLightThemeVisibility}" VerticalAlignment="Center" Width="30" Source="/MyApplication;component/imageDarkTheme.png" />
<Image Height="30" HorizontalAlignment="Center" Margin="0,0,0,220" Name="imgLoading" Stretch="Fill" Visibility="{StaticResource PhoneDarkThemeVisibility}" VerticalAlignment="Center" Width="30" Source="/MyApplication;component/imageLightTheme.png" />
Diese Frage ist 1,5 Jahre alt geworden. Aber hier ist der einfachste Weg zu tun, was Sie wollen. Das Beispiel ist sehr einfach wie
<Button>
<Image Stretch="None" Source="{Binding Converter={StaticResource ThemedImageConverter}, ConverterParameter={StaticResource PhoneBackgroundColor} }"
DataContext="/WP7SampleProject4;component/Images/{0}/appbar.feature.camera.rest.png" />
</Button>