Hacer un control de imagen invertido sus colores dependiendo del tema
-
09-10-2019 - |
Pregunta
Estoy tratando de encontrar la manera de tener un control Image
en mi aplicación de Windows Phone invertido sus colores según la configuración global de fondo (ya sea "oscuro" o "luz") elegido por el usuario en Preferencias-> Temas- > Fondo.
Solución
No hay incorporado en forma de colores Invertir imagen dentro del marco.
En lugar de ello, debido a la sobrecarga de hacer esto por teléfono, debe crear dos versiones de la imagen en tiempo de diseño / construcción y luego elegir la versión de pantalla de su código mediante la detección de Theme Visibilidad y opacidad .
Otros consejos
debo añadir que lo que hice al final fue una continuación de lo que Matt escribió.
- crear dos imágenes diferentes que tienen diferentes versiones de la imagen (claro y oscuro) y colocarlos en la exacta misma posición
- establecer su visibilidad basada en el recurso tema
las miradas código como el siguiente:
<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" />
Esta pregunta es de 1,5 años de edad ahora. Pero aquí es la forma más fácil de hacer lo que quiera. El ejemplo dado no es muy simple como
<Button>
<Image Stretch="None" Source="{Binding Converter={StaticResource ThemedImageConverter}, ConverterParameter={StaticResource PhoneBackgroundColor} }"
DataContext="/WP7SampleProject4;component/Images/{0}/appbar.feature.camera.rest.png" />
</Button>