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.

War es hilfreich?

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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top