WPF Cómo configurar diferentes contenidos de imagen en el activador de una plantilla dependiendo del control que utilice la plantilla.
Primero, escribí una clase que extiende RadioButton. El trabajo principal que hice fue agregar dos campos tipo cadena para guardar las rutas de las imágenes del RadioButton en los dos estados
public class MyRadioButton: RadioButton
{
cadena pública EnableImaUri
{
get { return (string)GetValue(EnableImaUriProperty }
set { SetValue(EnableImaUriProperty, valor }); p>
}
pública estática de solo lectura DependencyProperty EnableImaUriProperty = DependencyProperty.Register("EnableImaUri", typeof(string), typeof( MyRadioButton), null);
cadena pública DisEnableImaUri
{
get { return (string)GetValue(DisEnableImaUriProperty }
set { SetValue(DisEnableImaUriProperty, valor }
}
Pública estática de solo lectura DependencyProperty DisEnableImaUriProperty = DependencyProperty.Register("DisEnableImaUri", typeof(string), typeof(MyRadioButton), null
}
Luego coloque un botón y una fuente de imagen al frente de la página.
local:MyRadioButton>
Luego procese la lógica en segundo plano:
private void Button_Click(remitente del objeto, RoutedEventArgs e)
p>{
if (myRbtn1.IsEnabled = true;
}
}
vacío privado myRbtn1_IsEnabledChanged(objeto remitente, DependencyPropertyChangedEventArgs e)
{
MyRadioButton rBtn = remitente como MyRadioButton;
Imagen img = rBtn.Content como imagen si ( img = = null) return ;
if (rBtn.IsEnabled == true)
{
Uri uri = new Uri("/Images/" + rBtn. EnableImaUri, UriKind Relative);
img.Source = new BitmapImage(uri);
}
else
{ p>
Uri uri = nuevo Uri("/Images/" + rBtn.DisEnableImaUri, UriKind.Relative
img.Source = nuevo BitmapImage(uri);
}
}
¡¡¡OK!!!! Si tienes alguna pregunta, continúa preguntando^ ^