.NET Form im Vista Style (mit PNG)

thinux

Grünschnabel
Hallo,

ich konnte mich nicht entscheiden, in welchem Forum dieses Thema besser angelegt ist, also probier ich's mal hier:

Ich habe in der Vergangenheit immer C++ mit MFC programmiert und dabei nach dem Beispiel von CodeProjekt.com einen halb-transparenten Dialog incl. Schatten-Effekt erstellt
(siehe http://www.codeproject.com/KB/dialog/VisitaLookingDialog.aspx)

Könnt Ihr mir helfen, und ein paar Tipps geben, wie man das bei einem .NET-Projekt (also System::Windows::Forms::Form statt CDialog) macht.

Bisher habe ich versucht die PNG-Grafik direkt als Hintergrund auf die Form zu legen, das Problem ist jedoch, dass man die BackColor einer Form nicht auf "Transparent" setzten kann. Wenn möglich ohne MFC und GDI+.


IDE: VisualStudio2005
Language: C++/CLI, .NET
 
Zuletzt bearbeitet:
nein, so einfach ist es leider nicht.
mit opacity macht man die komplette Form inklusive ihrer Controls transparent, dabei verschwindet auch das Hintergrundbild.

...und vorbeugend will ich gleich erwähnen, dass es mit TransparencyKey auch nicht funktioniert, da man damit nur eine einzige Farbe transparent machen kann.
Man bekommt damit keine Schatten-Effekt. (zumindest habe ich es nicht geschafft)

GDI+:
ich dachte es gibt vllt. eine einfache Möglichkeit ohne GDI, aber wenn du eine Lösung mit GDI kennst würde mir das auch weiterhelfen.
 
Wenn ich das richtig sehe werden bei Codeproject nur 2 API Aufrufe verwendet.
Schonmal probiert diese zu verwenden?
API Funktionen kannst du auch in .Net einsetzen, schau mal bei msdn nach DLLImport (oder DLLImportAttribute).
 
Du willst Windows Forms verwenden, aber kein GDI+? Das wird schwierig :)

Das was du vorhast, ließe sich relativ einfach per WPF erledigen. Nur so als Hinweis und Tipp :)
 
Ok. Danke für den Tipp.
WPF sagt mir allerdings nichts. Werde mal ein wenig googlen müssen...


Hab mich bereits damit abgefunden, dass es ohne GDI+ nicht geht, und mir verschiedene Samples angeschaut wo GDI und CLI eingesetzt werden. Ich hab allerdings noch keinen Plan wie ich es anstellen soll.
Kannst du mir sagen wie man Schritt für Schritt vorgeht?
 
Zuletzt bearbeitet:
Zurück