uso el siguiente código para hacer que un icono transparente:Cómo renderizar un cursor transparente al mapa de bits preservando el canal alfa?
private void button1_Click(object sender, EventArgs e)
{
// using LoadCursorFromFile from user32.dll
var cursor = NativeMethods.LoadCustomCursor(@"d:\Temp\Cursors\Cursors\aero_busy.ani");
// cursor -> bitmap
Bitmap bitmap = new Bitmap(48, 48, PixelFormat.Format32bppArgb);
Graphics gBitmap = Graphics.FromImage(bitmap);
cursor.DrawStretched(gBitmap, new Rectangle(0, 0, 32, 32));
// 1. Draw bitmap on a form canvas
Graphics gForm = Graphics.FromHwnd(this.Handle);
gForm.DrawImage(bitmap, 50, 50);
// 2. Draw cursor directly to a form canvas
cursor.Draw(gForm, new Rectangle(100, 50, 32, 32));
cursor.Dispose();
}
Desafortunadamente no soy capaz de hacer que un cursor transparente de mapa de bits! Funciona cuando dibujo Cursor directamente en el lienzo del formulario, pero hay un problema cuando dibujo el Cursor en el mapa de bits. Cualquier consejo es muy apreciado.
problemas Sí, GDI + ha conocido que preservan el canal alfa en la elaboración de los iconos. Tal vez alguien sepa de una solución alternativa, pero sospecho que la mejor manera de hacerlo es usar GDI. –
Hmm ... Es una lástima, porque me gustaría quedarme con el código administrado. ¿Sabes que si Windows 7 aún usa GDI, renderiza los cursores de transparencia? –
Parece familiar. La atribución es obligatoria aquí. En realidad, puede obtener una mejor respuesta si se ocupa de esto. –