Imágenes basadas en temas de configuración dinámica estándar para Windows Phone

Actualmente estoy configurando las imágenes para un tema como este en MainPage.xaml.cs

public MainPage()
{
    InitializeComponent();
    setThemeIcons();
}

private void setThemedIcons()
{
    Uri u;
    if ((Visibility)Application.Current.Resources["PhoneDarkThemeVisibility"] == Visibility.Visible)
    {
        u = new Uri("/Images/img_dark.png", UriKind.Relative);
    }
    else
    {
        u = new Uri("/Images/img_light.png", UriKind.Relative);
    }
    btnSessionSearch.Source = new BitmapImage(u);
}

Esto me parece una codificación inferior. La razón principal es que tendré que hacer esto para cada imagen en la aplicación que sea sensible al tema.

La forma ideal es vincular la imagen directamente en el XAML. ¿Cómo hacerlo para que sea consciente del tema?

preguntado el 02 de julio de 12 a las 09:07

2 Respuestas

Eche un vistazo a ThemedImageConverter, puede usarlo de esta manera:

<Image Stretch="None" Source="{Binding Converter={StaticResource themedImageConverter}, ConverterParameter={StaticResource PhoneBackgroundColor}}"
DataContext="/WP7SampleProject4;component/Images/{0}/appbar.feature.camera.rest.png" />

respondido 03 nov., 12:17

Prepare un ValueConverter que agregará el sufijo 'oscuro' o 'claro' a la ruta del archivo y lo usará cuando vincule la propiedad de origen de la imagen.

Más información sobre IValueConverter La interfaz y el uso de convertidores en XAML se pueden encontrar en Internet, por ejemplo. sobre MSDN, El proyecto Code.

Respondido 02 Jul 12, 09:07

Me di cuenta un poco, pero un código de muestra sería muy útil para mí ... al menos la parte xaml. - fanfarrón

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.