Ayer encontré algo muy extraño (creo). Parece que Form.TransparencyKey
ofrece resultados diferentes según el color que se use como BackgroundColor
y TransparencyKey
. Si se quiere reproducir esto, haz lo siguiente:C# Form.TransparencyKey funciona de forma diferente para diferentes colores, ¿por qué?
- Crear nueva aplicación de Windows Forms
- gota una
Panel
en el formulario - Dale "verde" como
BackgroundColor
y establecer Form1 deTransparencyKey
también a Green - Ejecute el programa y coloque el formulario con "agujero" sobre algo y verá que puede hacer clic en ese agujero (como lo describe MSDN)
- Ahora cambie ambos colores a "Rojo" y ejecute la aplicación; verá " agujero "pero ya no puede hacer clic
¿Sabes por qué sucede eso? ¿Cual es la regla? Estoy usando .NET 4 con VS2010, probado en dos computadoras con la misma configuración.
No hay mucho código para esto ... Pero me pueden enviar ajustes en el diseñador:
private void InitializeComponent()
{
this.panel1 = new System.Windows.Forms.Panel();
this.SuspendLayout();
//
// panel1
//
this.panel1.BackColor = System.Drawing.Color.Red;
this.panel1.Location = new System.Drawing.Point(23, 26);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(229, 176);
this.panel1.TabIndex = 0;
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 262);
this.Controls.Add(this.panel1);
this.Name = "Form1";
this.Text = "Form1";
this.TransparencyKey = System.Drawing.Color.Red;
this.ResumeLayout(false);
}
//that outside:
private System.Windows.Forms.Panel panel1;
¿Puedes publicar tu código? – ChrisF
No repro con XP SP3 y .NET 2.0, lo siento. – Bobby
¿Alguien puede intentar eso con .NET 4.0? – Episodex