2010-04-20 16 views
7

Quiero poner una imagen en un botón, pero quiero que parte de la imagen sea transparente. ¿Cómo hago esto?Hacer parte de una imagen transparente

+0

¿Podría editar la imagen y guardarla como PNG con transparencia? Parece la opción más fácil a menos que no puedas hacerlo por alguna razón. – RandomEngy

Respuesta

4

Pruebe la propiedad Image.OpacityMask. Puede darle un pincel que especifique la región que desea que sea transparente.

EDITAR: De MSDN:

No hay soporte directo para color tecleando un mapa de bits en WPF. Sin embargo, es bastante fácil de implementar por su cuenta. Dwayne ha implementado un ColorKeyBitmap en su blog: http://blogs.msdn.com/dwayneneed/archive/2008/06/20/implementing-a-custom-bitmapsource.aspx Creo que enlaza con el código en CodePlex también. También podría lograr esto simplemente mediante la lectura de su mapa de bits en la memoria del sistema, la iteración a través de todos los píxeles y el establecimiento de sus valores a ti mismo, y la construcción de un nuevo mapa de bits de ese matriz.

+0

¿Se puede hacer que la máscara de opacidad se oriente a un color en lugar de a una región? –

+0

He visto imágenes que tienen fondos morados. Hay una manera de forzar ese color para que se vuelva transparente. ¿Hay alguna manera de hacer esto en WPF? –

+0

El proyecto de Dwayne no se compila, por lo que no puedo usarlo. Estoy desconcertado aquí. Poner una imagen en un botón es una práctica estándar. ¿Estás diciendo que no hay una manera fácil de hacer esto en WPF? –

3

Use un programa de pintura (yo uso Paint.Net) para cambiar el área que desea transparente a un color alha = 0. Luego guarde la imagen (la mía era JPG) como PNG. Parecía funcionar bien para mí en el control de imagen de WPF.

Cuestiones relacionadas