mustang-1969
Grünschnabel
Hallo,
ich habe folgendes transparente Control:
In dieses Control zeichne ich aus externen Klassen etwas hinein.
Das funktioniert alles super.
Da diese 'Zeichnungen' laufend geändert werden, muss die Arbeitsfläche dauernd gelöscht und der Inhalt neu aufgebaut werden.
Dazu dient eigentlich die obige Codezeile
-> Arbeitsbereich erneuern mit angegebener Farbe.
Hier beginnt mein Problem, sobald ich Erase() aufrufe:
Wenn ich irgendeine Farbe angebe, funktioniert es (Farbe blau - Control wird mit blauem Hintergrund 'gecleared'). Aber bei 'Color.Transparent' (was ich ja haben will!) bzw. Color.FromArgb(0, 0, 0, 0), was ebenfalls Transparenz bewirken sollte, erscheint das ganze Control SCHWARZ!?
Hat jemand eine Idee, wie ich ein sauberes transparents Arbeitsflächen-Clear hinbekomme?
Gruß Ralf
ich habe folgendes transparente Control:
Code:
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
namespace App
{
class TransparentPictureBox : Panel
{
public TransparentPictureBox()
{
this.BorderStyle = BorderStyle.None;
this.SetStyle(ControlStyles.Opaque, true);
this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
this.BackColor = Color.FromArgb(0, 0, 0, 0);
this.Dock = DockStyle.Fill;
}
public void Erase()
{
Graphics g = CreateGraphics();
g.Clear(Color.FromArgb(0, 0, 0, 0));
g.Dispose();
}
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x00000020;
return cp;
}
}
protected override void OnPaint(PaintEventArgs e)
{
}
protected override void OnPaintBackground(PaintEventArgs e)
{
}
}
}
In dieses Control zeichne ich aus externen Klassen etwas hinein.
Das funktioniert alles super.
Da diese 'Zeichnungen' laufend geändert werden, muss die Arbeitsfläche dauernd gelöscht und der Inhalt neu aufgebaut werden.
Dazu dient eigentlich die obige Codezeile
Code:
g.Clear(Color.FromArgb(0, 0, 0, 0));
-> Arbeitsbereich erneuern mit angegebener Farbe.
Hier beginnt mein Problem, sobald ich Erase() aufrufe:
Wenn ich irgendeine Farbe angebe, funktioniert es (Farbe blau - Control wird mit blauem Hintergrund 'gecleared'). Aber bei 'Color.Transparent' (was ich ja haben will!) bzw. Color.FromArgb(0, 0, 0, 0), was ebenfalls Transparenz bewirken sollte, erscheint das ganze Control SCHWARZ!?
Hat jemand eine Idee, wie ich ein sauberes transparents Arbeitsflächen-Clear hinbekomme?
Gruß Ralf