Tengo una interfaz de usuario que requiere colocar algunos botones redondos en un proyecto C# con algunos datos detrás de ellos. Los botones son System.Windows.Forms.buttons y he usado una imagen GIF con transparencia para crearlos. Sin embargo, las áreas transparentes no son transparentes. He buscado referencias en línea, pero no he encontrado sugerencias sobre cómo hacerlo correctamente. Hay alguna mención de hacerlo en Visual Studio 2008 pero necesito mantener este proyecto en 2005. Cualquier ayuda o sugerencia es apreciada.¿Puedo crear botones transparentes en Visual Studio 2005 con C#
Respuesta
Estoy bastante seguro de que necesita usar PNG con WinForms para obtener transparencia de imagen. Sé que los he usado con éxito.
EDITAR: Cuando utilicé los PNG, los superponía con el control de Imagen en Form1.BackgroundImage; No los estaba usando en botones.
Creo que su mejor opción es cambiar de usar un control de botón a usar un control de imagen. También puede intentar cambiar el estilo del botón a plano (creo que era plano, tal vez uno de los otros estilos) y ver si puede obtener el efecto que desea de esa manera.
Debe establecer la propiedad BackColor de un botón en "Transparente".
Button1.BackColor = System.Drawing.Color.Transparent;
crear una clase derivada del botón y poner este código.
protected override CreateParams CreateParams
{
get
{
const int WS_EX_TRANSPARENT = 0x20;
CreateParams cp = base.CreateParams;
cp.ExStyle |= WS_EX_TRANSPARENT;
return cp;
}
}
y en el método create
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
SetStyle(ControlStyles.Opaque, true);
this.BackColor = Color.Transparent;
Estoy utilizando Visual Studio 2005 y trató de seguir su ejemplo anterior, pero no funcionó (el fragmento de crear el método). Tengo un fondo para mi formulario y estoy tratando de crear botones transparentes biselados.
Actualmente, al insertar el código anterior, mi fondo es transparente y mis botones son de color blanco.
Aquí hay un fragmento de mi código
Bitmap mainFormBackground = (Bitmap)Image.FromFile("background.jpg");
this.BackgroundImage = mainFormBackground;
this.BackColor = Color.Black;
this.ForeColor = Color.White;
Añadir algunos botones
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
SetStyle(ControlStyles.Opaque, true);
this.BackColor = Color.Transparent;
Incluso intenté
btnName.BackColor = Color.Transpare;
esto también no funcionaba
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
public class TransparentControl : Control
{
public TransparentControl()
{
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
SetStyle(ControlStyles.Opaque, true);
SetStyle(ControlStyles.ResizeRedraw, true);
this.BackColor = Color.Transparent;
}
protected override void OnPaint(PaintEventArgs pevent)
{
Graphics g = pevent.Graphics;
g.DrawRectangle(Pens.Black, this.ClientRectangle);
}
protected override void OnPaintBackground(PaintEventArgs pevent)
{
// don't call the base class
//base.OnPaintBackground(pevent);
}
protected override CreateParams CreateParams
{
get
{
const int WS_EX_TRANSPARENT = 0x20;
CreateParams cp = base.CreateParams;
cp.ExStyle |= WS_EX_TRANSPARENT;
return cp;
}
}
// rest of class here...
}
Prueba esto:
Bitmap temp = new Bitmap(button1.Image);
temp.MakeTransparent(Color.Black); //your transparent color, in this case black
button1.Image = (Image) Logo;
temp.Dispose();
temp = null;
Sólo hay que establecer FlatStyle property a "plana" y hellip del botón, y voilà! Sé que esto funciona con PNG, pero no lo he probado con GIF.
La siguiente respuesta se verifica en Visual Studio 2012 y funciona con el formato de imagen de fondo BMP, GIF, PNG y JPG; creado por MS Paint.
Para que su fondo visible a través de su botón:
Ir a la ventana de propiedades del botón.A continuación, cambiar el BackColor FlatStyle y como se muestra en la siguiente imagen:
Nota: El color debe ser elegido de Web Tab y La FlatStyle es ser elegido como plana.
Pero después de esto, el botón será transparente hasta que el mouse no desplace el mouse o se seleccione o presione. En esa condición, estará en un color no transparente. Si desea que siempre sea transparente, siga las siguientes imágenes y cambie los colores correspondientes a transparente como antes. Los colores que se cambiarán son: 'MouseOverBackColor' & 'MouseDownBackColor'.
Nota: Si elige siempre transparentes, como se muestra, no habrá ningún cambio en el aspecto del botón mientras que será en la acción!
Espero que te ayude.
¡La mejor de las suertes!
- 1. LNK 2005 en Visual C++ en Visual Studio 2010
- 2. ¿Crear instalador de programa en Visual Studio 2005?
- 3. ¿Cómo puedo ejecutar Visual Studio 2005 en Windows 7?
- 4. Agilice la compilación en Visual Studio 2005
- 5. Error de LNK 2005 en Visual Studio 2005
- 6. Visual Studio 2005 Accesos directos
- 7. Visual Studio 2005. Archivo RC incluye
- 8. Configurando F # en Visual Studio 2005
- 9. ¿Integración Mercurial en Visual Studio 2005?
- 10. Visual Studio 2005 - 'Actualización de IntelliSense' cuelgue
- 11. invocando funciones durante la depuración con Visual Studio 2005?
- 12. Uso de memoria de Visual Studio 2005
- 13. Visual Studio 2005 no es compatible con Sql Server 2008
- 14. Firmando en Visual Studio 2005 - error usando .pfx existente
- 15. ¿Cómo degradar la solución de Visual Studio 2010 a Visual Studio 2005?
- 16. ¿Dónde está Visual Studio 2005 Express?
- 17. ¿Dónde descargar visual studio express 2005?
- 18. ¿Puede Visual Studio 2008 trabajar con Team System 2005?
- 19. # include <dirent.h> en Visual Studio 2005
- 20. ¿Cómo puedo hacer un .exe totalmente vinculado de forma estática con Visual Studio Express 2005?
- 21. C en Visual Studio
- 22. ¿Cómo puedo degradar un proyecto de C++ Visual Studio 2008 a 2005
- 23. Uso de Crystal Reports en Visual Studio 2005 (aplicación C# .NET de Windows)
- 24. ¿Cómo convivir con Visual Source Safe 2005?
- 25. ¿Cómo incrusto una fuente con mi aplicación C#? (usando Visual Studio 2005)
- 26. Pasando de Visual Studio 2005 a 2008 y .NET 2.0
- 27. ¿Cambiar icono de la aplicación en Visual Studio 2005?
- 28. Asignar botones del mouse en Visual Studio 2008
- 29. Elaboración de perfiles de código en Visual Studio 2005
- 30. ¿Compila para x64 con Visual Studio?
Gracias, amdfan. Veré si puedo hacer que esto funcione. – Sean