Transparenter Hintergrund bei Steuerelement

Die Programmiersprache C# und Programmierung im .NET Framework/Mono

Transparenter Hintergrund bei Steuerelement

Beitragvon cloidnerux » Mo Feb 01, 2010 9:27 pm

Ich habe 2 selbstgezeichnete Steuerelemente, die sich zum Teil überdecken.
Da die Steuerelemnte Polygone sind, will ich das in den Flächen, wo quasi nichts sein sollte, das überlappte Steuerlement angezeigt wird.
Also habe ich den Hintergrund Transparent gezeichnet, trotztdem wird der überdeckte Teil des zweiten Steuerelements abgeschnitten und der Hintergrund des übergeordneten Controls gezeichnet.
Wie schaffe ich es nun mit GDI+, den Überlappten Teil anzuzeigen, anstatt den Hintergrund des übergeordneten Controls.
Aeris v. 0.4 BETA 3 upgeloadet
Alle Aeris updates/add-ons/releases unter
http://cloidnerux.cl.funpic.de/
http://aeris.a-server.tk/

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Benutzeravatar
cloidnerux
 
Beiträge: 1192
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Transparenter Hintergrund bei Steuerelement

Beitragvon Xin » Mo Feb 01, 2010 9:31 pm

cloidnerux hat geschrieben:Wie schaffe ich es nun mit GDI+, den Überlappten Teil anzuzeigen, anstatt den Hintergrund des übergeordneten Controls.

Reden wir von GDI+ oder von .NET Controls?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich leiste keinen Support zu Programmierfragen per Mail oder PN - dafür ist das Forum da.
Benutzeravatar
Xin
nur zu Besuch hier
 
Beiträge: 3356
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin

Re: Transparenter Hintergrund bei Steuerelement

Beitragvon cloidnerux » Di Feb 02, 2010 4:40 pm

Reden wir von GDI+ oder von .NET Controls?

Code: Alles auswählen
class EigenesSteuerElement : Control
{
...
    protected override void OnPaint(PaintEventArgs e)
    {
        e.Grafics.Fillrectangle(...);
    }
}

Es ist ein eigenes Steuerlelement, abgeleitet von Control, zeichnet sich aber mit GDI+ komplett selbst.
Aeris v. 0.4 BETA 3 upgeloadet
Alle Aeris updates/add-ons/releases unter
http://cloidnerux.cl.funpic.de/
http://aeris.a-server.tk/

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Benutzeravatar
cloidnerux
 
Beiträge: 1192
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Transparenter Hintergrund bei Steuerelement

Beitragvon Xin » Di Feb 02, 2010 5:51 pm

cloidnerux hat geschrieben:
Reden wir von GDI+ oder von .NET Controls?

Code: Alles auswählen
class EigenesSteuerElement : Control
{
...
    protected override void OnPaint(PaintEventArgs e)
    {
        e.Grafics.Fillrectangle(...);
    }
}

Es ist ein eigenes Steuerlelement, abgeleitet von Control, zeichnet sich aber mit GDI+ komplett selbst.

e.Graphics ist nicht GDI... wird vielleicht über GDI abgebildet, aber Du bleibst erstmal in .NET.

Wie hast Du den Hintergrund transparent gezeichnet?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich leiste keinen Support zu Programmierfragen per Mail oder PN - dafür ist das Forum da.
Benutzeravatar
Xin
nur zu Besuch hier
 
Beiträge: 3356
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin

Re: Transparenter Hintergrund bei Steuerelement

Beitragvon cloidnerux » Di Feb 02, 2010 6:36 pm

Wie hast Du den Hintergrund transparent gezeichnet?

Code: Alles auswählen
private void PaintTransparentBackground(Graphics graphics)
        {
            graphics.FillRectangle(Brushes.Transparent, this.ClientRectangle);
        }

e.Graphics ist nicht GDI... wird vielleicht über GDI abgebildet, aber Du bleibst erstmal in .NET.

Ich rede von GDI+, die .NET Erweiterung von GDI.
Aeris v. 0.4 BETA 3 upgeloadet
Alle Aeris updates/add-ons/releases unter
http://cloidnerux.cl.funpic.de/
http://aeris.a-server.tk/

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Benutzeravatar
cloidnerux
 
Beiträge: 1192
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Transparenter Hintergrund bei Steuerelement

Beitragvon Xin » Di Feb 02, 2010 8:47 pm

cloidnerux hat geschrieben:Ich rede von GDI+, die .NET Erweiterung von GDI.

Wie auch immer...

Schaumal zwei Threads weiter in C#....
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich leiste keinen Support zu Programmierfragen per Mail oder PN - dafür ist das Forum da.
Benutzeravatar
Xin
nur zu Besuch hier
 
Beiträge: 3356
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin

Re: Transparenter Hintergrund bei Steuerelement

Beitragvon cloidnerux » Di Feb 02, 2010 9:17 pm

Schaumal zwei Threads weiter in C#....

Selber effekt. Die Ränder sind Schwarz, das Überlappte Element wird nicht angezeigt.

Ich habe mal mein Projekt angehangen, dann kann man sich ein Bild davon machen.
Es geht konkret um die SimpleCadTabMenuItem.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Aeris v. 0.4 BETA 3 upgeloadet
Alle Aeris updates/add-ons/releases unter
http://cloidnerux.cl.funpic.de/
http://aeris.a-server.tk/

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Benutzeravatar
cloidnerux
 
Beiträge: 1192
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Transparenter Hintergrund bei Steuerelement

Beitragvon Xin » Di Feb 02, 2010 9:32 pm

cloidnerux hat geschrieben:
Schaumal zwei Threads weiter in C#....

Selber effekt. Die Ränder sind Schwarz, das Überlappte Element wird nicht angezeigt.

Ich habe kein C# hier, das kann ich mir frühstens am Donnerstag auf meinem Firmenrechner kurz angucken
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich leiste keinen Support zu Programmierfragen per Mail oder PN - dafür ist das Forum da.
Benutzeravatar
Xin
nur zu Besuch hier
 
Beiträge: 3356
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin

Re: Transparenter Hintergrund bei Steuerelement

Beitragvon cloidnerux » Do Feb 04, 2010 5:56 pm

Ich habe den Fehler, bzw die Lösung gefunden:
JEDES Grafisches Steuerelement zeichnet seinen komplettn Hintergund neu, und der ist schließlich eine Box. Bei normalen Steuerelementan macht das nichts, da sind nur mal die Ecken etwas abgerundet, nicht das ganze Objekt. Um jetzt, alle Elemente richtig zu Zeichnenm müssen sie von einer Übergeordnten Verwalter aufgertufen werde, um dann gemeinsam OHNE Hintergrund gezeichnet werden, quasi als 1 Element.
Aeris v. 0.4 BETA 3 upgeloadet
Alle Aeris updates/add-ons/releases unter
http://cloidnerux.cl.funpic.de/
http://aeris.a-server.tk/

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Benutzeravatar
cloidnerux
 
Beiträge: 1192
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)


Zurück zu C# und .NET Programmierung

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast