Autor Beitrag
GURKE deluxe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 91
Erhaltene Danke: 1

Win 7 Home Premium x64, Win XP Home Edition v2002
C# Microsoft Visual C# 2010 Express
BeitragVerfasst: Mo 01.11.10 20:46 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 02.11.10 12:45 
Hallo Julian,

bei www.c-sharp-forum.de...ewtopic.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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 91
Erhaltene Danke: 1

Win 7 Home Premium x64, Win XP Home Edition v2002
C# Microsoft Visual C# 2010 Express
BeitragVerfasst: 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
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 03.11.10 21:12 
Ich habe zufällig diesen Link gefunden:
Bildschirm um Dialog herum abdunkeln
Vllt. ist das passender für dich, kannst es ja auch dann abändern, da der Source-Code dabei ist...
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 04.11.10 07:51 
Es gibt in der Windows API die Funktion AlphaBlend. Diese zeigt eine Bitmap semitransparent an:
msdn.microsoft.com/e...dd183351(VS.85).aspx
GURKE deluxe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 91
Erhaltene Danke: 1

Win 7 Home Premium x64, Win XP Home Edition v2002
C# Microsoft Visual C# 2010 Express
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 91
Erhaltene Danke: 1

Win 7 Home Premium x64, Win XP Home Edition v2002
C# Microsoft Visual C# 2010 Express
BeitragVerfasst: 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?