Autor Beitrag
DiaryOfDreams
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Mi 07.04.10 15:11 
Hallo.

Ich möchte eine Form haben deren Hintergrund zu einer bestimmten Prozentzahl durchsichtig ist.
Ich habe bereits herausgefunden das man eine Farbe definieren kann welche dann durchsichtig ist - aber ich will ja nur eine Durchsichtigkeit von x Prozent (x != 100).
Außerdem kann man mit Opacity auch die komplette Form prozentuell durchsichtig machen - ich will aber das der Rahmen und auf der Form befindliche Elemente NICHT durchsichtig werden.

Hat da jemand 'ne Idee zu?
Ich denke fast das es nur gehen wird indem ich 'ne eigene Form erbe und erstelle oder?
Christoph1972
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 690
Erhaltene Danke: 16


VS2015 Pro / C# & VB.Net
BeitragVerfasst: Mi 07.04.10 18:23 
Tach :D

Hier eine Anregung. Elipse muss gegen Rectangle getauscht werden, hier und da noch was anpassen, dann sollte das realisierbar sein.

_________________
Gruß
Christoph
DiaryOfDreams Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Do 08.04.10 12:24 
Hi.
Erstmal Danke für den Tip, aber irgendwie klappt der bei mir nicht.
Ich habe meiner Form einen blauen Hintergrund zugewiesen. Der TransparencyKey steht auf "Silver". Also zeichne ich nun einen Kreis mit "new SolidBrush(Color.Silver)", aber ich sehe anschließend diesen silbernen Kreis - nicht jedoch den Bildschirm dahinter.

EDIT: Habe "new SolidBrush(Color.Silver)" jetzt durch "new SolidBrush(this.TransparencyKey)" ersetzt, was aber auch keine Änderung bringt.
Christoph1972
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 690
Erhaltene Danke: 16


VS2015 Pro / C# & VB.Net
BeitragVerfasst: Do 08.04.10 18:20 
Hi, ich kann dir nicht sagen warum es nicht geht. Ich habe es vor ewigkeiten mal gemacht und es hat funktioniert. Du hast sicher einen Fehler bei der Übersetzung gemacht.

_________________
Gruß
Christoph
DiaryOfDreams Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Fr 09.04.10 08:30 
Naja, viel kann man da ja nicht falsch übersetzen. ;-)
Aber da der Tip ja letzten Endes auch nur eine komplette Durchsichtigkeit ermöglicht habe ich das ganze jetzt anders herum gemacht. Also die Hintergrundfarbe auf Transparent und alles was nicht transparent sein soll per paint-Methode nachgezeichnet. Damit habe ich jetzt auch keine Teiltransparenz, aber sowas scheint wohl auch nicht möglich zu sein.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 09.04.10 13:17 
user profile iconDiaryOfDreams hat folgendes geschrieben Zum zitierten Posting springen:
Damit habe ich jetzt auch keine Teiltransparenz, aber sowas scheint wohl auch nicht möglich zu sein.
Möglich schon, nur sind dann alle Form-Controls weg ;) : blogs.msdn.com/mswan...05/07/07/436618.aspx

_________________
>λ=
norman2306
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 222
Erhaltene Danke: 16

Win XP, Win 7 64-Bit
C# 4.0 (VS2010)
BeitragVerfasst: Fr 09.04.10 13:25 
Du könntest auch einfach zwei Formen übereinanderklatschen. Deine erste Form gestalltest du ohne Controls. Deine zweite Form machst du als ränderlose Form mit Transparency-Key. Dann setzt du beide auf die gleiche Größe. Mit dem WinAPI-Befehl SetParent kannst du die zweite Form dann in die Erste einbetten.