Entwickler-Ecke
WinForms - Hintergrund eingrauen/deaktivieren
GURKE deluxe - Mo 01.11.10 20:46
Titel: Hintergrund eingrauen/deaktivieren
Hallo,
Ich möchte bei einem Klick auf ein Button eine PictureBox anzeigen lassen und nebenbei den Hintergrund "runterdimmen" lassen. Das Anzeigen ist natürlich kein Problem, aber wie bekomme ich es hin, das der Hintergrund so gräulich wird damit man das Bild besser erkennt?
Ich dachte da an ein Panel in der Größe der Form, allerdings kenne ich nur durchsichtig und undurchsichtig, aber nichts dazwischen.
Sonst viele mir noch ein, eine zweite PictureBox zu nehmen. Die momentan Ansicht zwischenzuspeichern ("Druck-Taste") und dann dort anzeigen zu lassen, wobei ich bei jedem Pixel noch die RGB Werte gleichmäßig Richtung 255 verschiebe.
Allerdings bin ich von dieser Idee nicht wirklich überzeugt.
Gibt es für sowas keine einfache Lösung?
Gruß
Julian
Th69 - Di 02.11.10 12:45
Hallo Julian,
bei
http://www.c-sharp-forum.de/viewtopic.php?t=101795 habe ich dafür die LowLevelLibrary empfohlen.
Bei dir könnte dann "new GrayScale().Execute(bitmap);" zum Einsatz kommen...
Du willst aber nur deine eigene Form abdimmen oder den ganzen Desktop (wie bei "Computer ausschalten" unter WinXP und höher)?
GURKE deluxe - Di 02.11.10 20:11
Hallo,
Ich habe mir das ganze mal gedownloadet, allerdings ist die beste Funktion die meiner am nächsten kommt, die Farbe->Grau "Machung". Und das passt ja auch nicht so gut oder habe ich da was übersehen? Gibt es denn nicht vll. die Möglichkeit eine PictureBox zu 50% oder so durchsichtig machen?
Gruß
GURKE
GURKE deluxe - Do 04.11.10 17:27
Hallo,
Danke für die Antworten!
@Th69:
Ich habe den Code mal bei mir eingefügt, aber wie führe ich diesen nun aus? :D
@jaenicke:
Habe mir Alphableding mal angschaut. Kann es sein, das .Net 4.0 das nicht mehr unterstützt? Irgendwie findet man darüber nur sehr weniges. Hast du sonst evtl. mal ein Codebeispiel?
Th69 - Do 04.11.10 17:51
Du hast die Beschreibung dazu gelesen?
| Zitat: |
ShowShadow:
Aktiviert den Abdunklungs-/Ausgrauungsvorgang
|
Da diese Klasse abstrakt ist, mußt du also dein Formular davon erben lassen:
C#-Quelltext
1: 2: 3: 4:
| class YourForm : DialogShadowTopForm {
} |
Und deine Form anschließend dann mit Show() oder ShowDialog() aufrufen (also nach ShowShadow()).
Beachte aber auch die Anmerkungen der anderen Beiträge, z.B. zu CloseShadow().
GURKE deluxe - Fr 05.11.10 15:49
Hallo Th69,
Ich habe noch nie mit abstrakten Klassen gearbeitet. Was muss ich genau machen um die Klasse aufrufen zu können?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!