Botón WPF Imagen de Mouseover

Estoy aprendiendo C # y XAML para crear aplicaciones de Windows. Quería crear un botón que tenga una imagen como fondo. Pero al pasar el cursor sobre el botón, el fondo del botón debería cambiar a otra imagen “resaltada”. Intenté agregar las imágenes de fondo en Resources.resx. Tuve que crear un botón personalizado usando estilos xaml para eliminar el efecto resaltado predeterminado de un botón wpf.

Creé un botón personalizado de algún código que encontré en SO. El código es (en un nuevo diccionario de recursos):

                    

¿Qué debo poner para que el fondo cambie a otra imagen, ya sea en mis resources.resx u otra ubicación? (No estoy seguro de dónde poner la imagen para acceder). Busqué SO, pero las soluciones que encontré no eran exactamente lo que estoy tratando. Si esta es una pregunta duplicada, me disculpo.

Resumen:

¿Cómo cambio la imagen de fondo de un botón del mouse sobre el activador en XAML? ¿Dónde coloco la imagen para que se pueda acceder en el código de activación?

Actualización Esto es lo que he puesto como acción de activación, pero la imagen no se actualiza. Me aseguré de establecer la acción de creación de la imagen en el recurso y ponerlo en una carpeta llamada Recursos .

El código es:

         

La estructura del archivo es

 Simon Simon Resources all the images Fonts bin obj Properties 

Solución

El siguiente es el código completo para permitir un cambio de imagen de mouseover en el botón:

                        

Para la imagen real, la coloqué en la carpeta de Recursos que está en el directorio raíz. Después de importar las imágenes allí usando la herramienta de recursos en Visual Studio, actualicé la configuración de comstackción de imágenes a Recurso en el panel Propiedades.

Gracias por la solución dbaseman

Creo que es más fácil simplemente agregar la imagen a una carpeta /Images en el proyecto. Entonces esta es la syntax que usa:

               

(Suponiendo que su imagen MyImage.jpg está en la carpeta Images en la raíz de su proyecto).

Solo asegúrese de que MyImage.jpg tenga su “Acción de comstackción” configurada como “Recurso”.

Aquí hay otra manera de hacer esto.

Puede usar los dos eventos de la imagen MouseEnter y MouseLeave. Ahora en tu código haz esto.

XAML

  

DO#

 private void image1_MouseEnter(object sender, MouseEventArgs e) { string packUri = @"pack://application:,,,/Resources/Polaroid.png"; image1.Source = new ImageSourceConverter().ConvertFromString(packUri) as ImageSource; } private void image1_MouseLeave(object sender, MouseEventArgs e) { string packUri = @"pack://application:,,,/Resources/PolaroidOver.png"; image1.Source = new ImageSourceConverter().ConvertFromString(packUri) as ImageSource; }