Button zur Titlebar hinzufügen

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Button zur Titlebar hinzufügen

    Zunächst ein freundliches Hallo zur VB-Paradise Community.

    Ich arbeite gerade an einem Programm, bei dem ich in die Titlebar einen Button (FlatStyle) hinzufügen möchte. Es sollte ähnlich dem Explorer von Windows 8 aussehen:




    Das was ich erreichen möchte ist folgendes:




    Das ganze soll mit Windows 7 & 8 funktionieren, also ich denke das System ist nicht das Problem. Habe mich auch bereits mit vielen Versuchen an eine Umsetzung des Codes Jose Menedez Póo für meinen Bedarf herangewagt, allerdings ohne erfolg. Gibt es für so etwas vielleicht sogar bereits eine fertige Lösung wie die rtaGlassEffectsLibary. Bei letzterer hatte ich das Problem, das man damit nicht die Titlebar abändern konnte, sondern lediglich den Bereich darunter um eine art zweite Titlebar erweitern konnte.

    Und bevor jemand diesen Vorschlag vorbringt: Die Form ohne Rahmen zu erstellen und anschließend selber diesen nachzuzeichnen habe ich gerade als Übergangslösung, jedoch finde ich das alles andere als Zufriedenstellend. - Farben stimmen nie mit dem Farbschema des Systems überein (daher grau), Windows 8 Fenster in Windows 7 sind sehr gewöhnungsbedürftig. :/




    Denkt ihr mein Vorhaben ist mit Visual Basic realisierbar bzw. hat da jemand vielleicht schon was angefertigt?
    ist in WinForms nicht vorgesehen. Mit großen Anstrengungen ists glaub doch möglich, aber ich zb verkünstel mich lieber woanders, auch wenn der Win7-IE so aussieht.
    In Wpf ists einfacher, aber vom Prinzip her haben auch dort die Fenster einen Titelbalken, und das ist der Titelbalken und kein Zusatz-Toolstrip (so praktisch das manchmal auch wäre).
    Übrigens ist das was da oben im Explorer ist Ribbon Ich glaub ich suche gleich mal einen Link raus der dir sehr behilflich sein könnte, wenn ich den Link noch finde :(

    EDIT://

    officeribbon.codeplex.com/
    Hier ist der Link, in der Documentation steht das auch wie du diesen Button und alles drum und dran hin bekommst :)

    Gruß,
    Jan
    Software being "Done" is like lawn being "Mowed". (Jim Benson)
    Willkommen im Forum. :thumbup:

    CoreGodlike schrieb:

    allerdings ohne erfolg.
    Inwiefern machte der Erfolg einen Bogen um Dich?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Also zunächst mal danke für die vielen Antworten :)


    @ErfinderDesRades:
    Das es mit WPF geht wurde mit bereits von meinem Kumpel mitgeteilt, allerdings wollte ich es halt leider in VB machen :S - aber danke für den Hinweis ;)


    @Snaptu:
    Da werd ich mich mal durchlesen & -arbeiten, einer der Links scheint vielleicht ganz nützlich zu sein - Danke (=


    @KidRick:
    Das sieht sogar noch vielversprechender aus :thumbup: Werd ich mich gleich einlesen, danke!


    @RodFromGermany
    Der Erfolg machte einen Bogen um mich indem VB mit Fehlermeldungen um die Ohren geworfen hatte die mich selbst nach ewiger Fehlersuche noch heimgesucht hatten (Da hätte ich ja eigentlich schon an das Forum wenden können ^^) und bei einer der Methoden (die verlinkte DLL) konnte ich wie gesagt oben nicht die Titelleiste bearbeiten, ungeachtet welche Tricks mit Minus-werten & co. ich auch versucht hatte.


    Zudem noch eine kleine Entschuldigung das ich "erst" jetzt antworte, hatte jedoch heute noch eine Prüfung und die hatte nunmal Vorrang ;)

    CoreGodlike schrieb:

    Das es mit WPF geht wurde mit bereits von meinem Kumpel mitgeteilt, allerdings wollte ich es halt leider in VB machen - aber danke für den Hinweis
    Ou je. Da bist du aber sowas von schlecht informiert. Das ändert doch rein gar nichts. Winforms, Konsole, WPF, ASP.NET. Basiert alles auf VB. Kannste überall exakt gleich Dateien lesen/schreiben, rechnen, TcpVerbindungen aufbauen,...
    Im Prinzip ist alles gleich bis auf die GUI. Beides ist exakt das SELBE. Bis auf die GUI eben. Aber die hat nix mit der Sprache zu tun.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    In WPF schreibst du den Code ja ebenso in VB (oder C#), nur halt das Design in XAML.
    Es ist wirklich nicht sehr schwer, wuerde dir empfehlen dich da mal einzulesen und das Problem mit WPF zu loesen.

    Gruss

    edit: thefiloe war schneller :D
    seh ich anders.
    Ja, im Viewmodel einer Wpf-Anwendung schreibt man vb-Code.

    Aber dann muss man eine ganz neue Sprache lernen - Xaml, und v.a. eine ganz neue Philosiphie - MVVM.
    Und von daher hat Wpf mit dem Vb, was der TE bislang so kennt, kaum was gemein.
    Würde er derzeit in WinForms viel mit Databinding arbeiten, dann gäbe es mehr Berührungspunkte. Aber ich nehme an, von Databinding hat er bislang nur gehört - also ich stimme beiden zu: klar ist wpf auch noch vb, aber es ist eben auch komplett Neuland.
    Na ja, XAML zu lernen ist mMn keine große Hürde, denn es ähnelt XML usw. und man muss halt nur diese Syntax einmal verstehen und dann die Begrifflichkeiten, wie "Alignment" oder ähnliches, aber das kann man ja alles ergooglen und am Ende kannste damit halt enorm Vorteile sammeln. XAML ist im Prinzip nicht schwer, hat halt nur nen anderen Aufbau. In WinForms machste alles in VB oder anderen Sprachen und in WPF teilt sich das halt, aber das muss man in Kauf nehmen. WPF ist eine neue Technologie und wurde eben so gebaut, dass man das unabhängig machen kann. Dadurch erweisen sich mMn die erweiternden Möglichkeiten bei GUIs.

    Wenn man die Pattern mal versteht, kommt man in den angenehmen Bereich und wenn man das oben beachtet, hat man schon mal das elementare für MVVM, da man weiß, wie das designt ist und wozu man solche Sachen, wie Pattern überhaupt braucht. Es ist halt ganz abgesondert und man trennt die Daten vom GUI und somit ist der Rest nur Lernsache, wie es implementiert wird mit den ganzen Bindings und den Contexten, was extrem praktisch sein kann, denn man hat einfach das sauber geschrieben und das macht das automatisch. Somit lässt sich auch (jetzt mal zum Beispiel) "Undo/Redo" leicht implementieren, da die Struktur sich da gut für eignet. Man muss halt wissen, dass man sowas dazu benutzen muss. MVVM ist das beste Pattern IMO. MVC und MVP sind bestimmt auch gebräuchlich, aber man muss halt schauen.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Trade“ ()

    CoreGodlike schrieb:

    VB mit Fehlermeldungen um die Ohren geworfen hatte
    Welche?
    In welcher Code-Zeile?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!