Bir kontrolün arka planı olarak saydam bir kenarlığı olan bir görüntüyü görüntülemeye çalışıyorum. aşağıdaki gibiSaydam arka planla çizim kontrolü
Maalesef şeffaf alan ebeveyn şeklinde bir delik oluşturur: Yukarıdaki resimde
form ben benim kontrolüm arkasında görmek umduğu kırmızı arka plana sahip şeffaf alanlar. aşağıdaki gibi
kullandığım kodudur: I OnMouseMove ve OnMouseUp Olaylar uygulayan bir kontrol gerekli çünkü
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
if (this.Image != null)
{
Graphics g = Graphics.FromImage(this.Image);
ImageAttributes attr = new ImageAttributes();
//set the transparency based on the top left pixel
attr.SetColorKey((this.Image as Bitmap).GetPixel(0, 0), (this.Image as Bitmap).GetPixel(0, 0));
//draw the image using the image attributes.
Rectangle dstRect = new Rectangle(0, 0, this.Image.Width, this.Image.Height);
e.Graphics.DrawImage(this.Image, dstRect, 0, 0, this.Image.Width, this.Image.Height,
GraphicsUnit.Pixel, attr);
}
else
{
base.OnPaint(e);
}
}
protected override void OnPaintBackground(System.Windows.Forms.PaintEventArgs e)
{
//base.OnPaintBackground(e);
}
Bu sınıf bir PictureBox devralınır.
farklı fikirleri test başarılı olamadı günün en araştıran ama ne yazık ki en yalnızca tam çerçeve üzerinde çalışmak ve .Net değil CF. oldum
Herhangi bir fikir çok takdir edilecektir.
Vay, bunun için teşekkürler. Son derece yararlı ve detaylı bir açıklama. Bu konuda kesinlikle biraz zaman geçirdin. –
@ctacke Size çok yakın bir Saydamlık çözümü ile geldim ve çalışma zamanında olduğu gibi tasarımcıda da çalışıyor. Kısa bir süre önce "Parent.Parent" olayı çalışmadığından, Kapsayıcı Denetimleri yerleştirirken çözümümün işe yaramayacağını anladım. Çalışma zamanında değil, tasarım zamanında çalışan this.TopLevelControl'e "Parent.Parent" anahtarını değiştirmeyi denedim. Konteynır kontrolleri içinde saydam kontrollerin yerleştirilmesi için bir çözüm bulabileceğiniz ve tasarımcının kontrolünüzü şeffaf hale getirdiği bir yer bulamadınız mı? –
Yıllar önce kontrollerim için tasarımcı desteği almaya bile çalıştım. Benim için hiç bu kadar önemli olmamıştı ve her zaman kırılgantı.Bazen işe yaramazdı, başka zamanlar işe yaramazdı ve kendimi günlerce yanıcı bir şekilde üretiyordum, aslında hiçbir şey üretken bir şey yapmıyordum, bu yüzden hiç bir zaman bile tasarımcıyla uğraşmak zorunda kalmıyordum. – ctacke