[OpenSource] FlatProgress

    • Release
    • Open Source

    Es gibt 42 Antworten in diesem Thema. Der letzte Beitrag () ist von Trade.

      [OpenSource] FlatProgress

      Name:
      FlatProgress

      Beschreibung:
      FlatProgress ist ein kleines simples ProgressBar-Control mit flachem Design und Farbverläufen. Es besteht die Möglichkeit alle Farbverläufe im Eigenschaftsfenster anzupassen, insofern man keine Hatch-Styles aktiviert hat.
      Diese Property finden sich im Eigenschaftsfenster im Reiter "HatchStyle" unter UseHatchStyle.

      Screenshot(s):



      Verwendete Programmiersprache und IDE:
      Visual Basic .NET (IDE: VB 2012 Express)

      Systemanforderungen:
      .NET Framework 2.0; Visual Studio

      Download:
      FlatProgress.dll

      Lizenz/Weitergabe:
      Freeware; OpenSource
      Source: FlatProgress-master.zip (Achtung, ranzig!)

      ToDo-Liste und Changelog
      Spoiler anzeigen

      Version 1.2.2
      - TextRenderingHint entfernt
      - Es wird nun überall invalidiert

      Version 1.2
      - Glaseffekt nun anpassbar (Dicke und ob er angezeigt werden soll)
      - Man kann nun einen ToolTip anzeigen lassen (Property dafür ist ShowToolTip)
      - Die ProgressBar hat nun einen schicken Rand
      - Es wird nun endgültig vom Control geerbt
      - Viele Bug-Fixes und Verbesserungen
      - Der lang ersehnte Marquee-Effekt ist nun verfügbar (Unter der Kategorie Animationen kann man die Property Style ändern)
      - Besserer Aufbau (überflüssiges entfernt und ProgressBar optimiert)
      - Komplett neuer Aufbau des Codes
      - Flüssig laufende ProgressBar bei allen Effekten und Kombinationen

      Version 1.1.1
      - HatchStyles in eigenen Reiter eingeordnet
      - ProgressBar-Control hat jetzt eine ProgressBar-Bitmap in der Toolbox.

      Version 1.1
      - Nochmal überarbeiteter Code
      - HatchStyles
      - Mehr Properties
      - Rename zu FlatProgressBar

      Wie binde ich die FlatProgressBar in meine Toolbox ein?
      Ihr klickt dazu in Visual Studio im MenuStrip auf Extras -> Werkzeugkastenelemente auswählen -> Durchsuchen... und wählt navigiert zur .dll-Datei und klickt dann auf OK.


      Tipps zu Farben und Einstellungen
      Spoiler anzeigen
      Wenn Ihr UseHatchStyle auf "True" gesetzt habt, dann könnt Ihr keine ProgressColorTop auswählen, da dann automatisch der Farbverlauf gemacht wird... Ich werde diese Property noch Enabled = False setzen.

      Die besten Farben und Muster bei HatchStyles
      - HatchStyleForeColor = Transparent
      - HatchStyle = WideDownwardDiagonal
      - Farben: Rot, Gelb und Grün

      Die besten Farbkombinationen bei UseHatchStyle = False (Spielt keine Rolle, ob Top oder Bottom bei ProgressColor)
      - Lime & LimeGreen
      - Lime & Lime
      - Orange & Gold
      - Yellow & Yellow
      - CornflowerBlue & Cyan
      - RoyalBlue & DodgerBlue
      - DarkTurquoise & MediumAquamarine
      - LightGray & Silver
      - DarkSalmon & 255; 128; 128
      - DarkOrange & SandyBrown
      - FloralWhite & Wheat
      - White & White
      - DarkGray & DarkGray

      Die besten Hintergründe
      - Gray & LightGray
      - White & WhiteSmoke


      Bei Problemen und Vorschlägen:
      Wenn es Probleme gibt berichtet diese bitte. Ich würde mich über Vorschläge freuen, dass ich noch etwas Arbeit mit einfließen lassen kann.
      Es ist mein erstes GDI+ Projekt und ich bin da noch neu, also bitte seid nicht so streng. ;)

      Grüße
      #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 55 mal editiert, zuletzt von „Trade“ () aus folgendem Grund: Source intern angehängt

      Ich freue mich Version 1.1 (zwar auch noch Beta) veröffentlichen zu dürfen.

      Changelog:
      • Mehr Properties nun in eigenen Reitern eingeteilt
      • Qualitätseinstellungen
      • HatchStyles
      • Bessere Performance
      • Framework auf 2.0 gesetzt.
      • Rename zu FlatProgressBar


      Info:
      Ich hab mich nun nochmal hingesetzt und nen kompletten Rewrite geschrieben und habe nun auch endgültig von der ProgressBar erben lassen, da dann die Performance ziemlich schnell und qualitativ ist.
      Beim UserControl hat es stark geflackert und es hängte teils...
      Alle Properties einer ProgressBar findet Ihr also trotzdem.
      Die Einstellungen, wie Value oder Maximum sind im Reiter Verhalten zu finden (wenn Ihr VS 2012 habt)
      Der Marquee-Style wurde noch nicht implementiert, da das noch nicht funktioniert hat...
      Wird aber wahrscheinlich in 1.2 implementiert.
      Alle Infos und weitere wichtige Sachen wurden im Hauptpost aktualisiert.
      #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“ ()

      @Luki-Progger
      Hi, danke erstmal. :)
      Was genau meinst du mit noch ein Farbverlauf? Beim HatchStyle? Ja, das wird automatisch gemacht, aber ich werde mal schauen, ob sich das anpassen lässt.
      Ich werde das Ganze beim nächsten Release in eine eigene Gruppe stecken.

      lg
      #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 :!:
      So nun nochmal ein kleines Update 1.1.1.

      Changelog:

      • HatchStyle Properties nun in eigenen Reiter gepackt
      • Das ProgressBar Control hat jetzt eine ProgressBar-Bitmap in der Toolbox


      Alle Infos und wichtigen Sachen, sowie der Download wieder im Hauptpost aktualisiert.
      #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 :!:
      Hallo Jonas,

      vielen Dank :).
      Ist zwar in Zeiten von Metro schon etwas ungewohnt, aber es freut mich, dass es immer noch Leute gibt, denen das gefällt.
      Zu Animationen:
      Jo, werde ich noch machen. Der Marquee-Effekt beispielsweise ist in Arbeit...
      Du kannst aber auch ganz normale Animationen, wie RightToLeft zum Beispiel schon auswählen...

      lg
      #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 :!:
      @TimoS
      Hmm... Wäre zwar machbar, aber ich sehe da keinen Sinn, da es ne simple ProgressBar ist.
      Zudem was soll das bringen? Alle Muster etc kannste ja auswählen und HatchStyles sind auch unterstützt.
      Aber ich werde für dich dieses Feature evtl noch einbauen.

      @iEi
      Hi, danke. :)
      Muster kannst du mit HatchStyles nutzen.

      BTW: In Version 1.2 kann man nun auch auswählen, ob der Glaseffekt an sein soll und es wurden viele Bugs gefixt, sowie Properties nun ausgeblendet. Am Marquee-Style arbeite ich grade...

      //EDIT: Feedback weiterhin erwünscht :)
      #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 1 mal editiert, zuletzt von „Trade“ ()

      Die Idee, eigene Stile zuzulassen, ist ja im Prinzip sehr gut, nur ist die Art, wie TimoS das implementiert haben will, absoluter Clusterfuck. Wenn man die Möglichkeit haben soll, die Bar selbst zu zeichnen, dann bitte auch richtig, nicht mit irgendwelchen Bitmaps rumpfuschen.
      Ich hatte für sowas schon mal ein System entworfen: MultiBar
      Hi Artentus,

      jo. Genau deshalb bin ich da auch nicht sicher. Wobei ich der Meinung bin, dass die ProgressBar bereits alle wichtigen Properties hat und die kann man auch anpassen. Vielleicht lasse ich noch eigene Muster (also nicht nur HatchStyles) implementieren.
      In 1.2 ist auch der Glaseffekt anpassbar.

      //EDIT: Ich werde auch noch ein ToolTip mit Statusanzeige einfügen und vielleicht noch ein Label. Das wird dann wenn aber mit ner Property namens ShowLabel anpassbar sein.
      #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 1 mal editiert, zuletzt von „Trade“ ()

      So Leute,

      ich wollte nur mal ne kurze Zwischenmeldung machen:
      Ich bin fleißig am Projekt dran. Es dauert nur, weil ich Performance-Tests etc machen muss.

      Gute Nachrichten: Ich leite nun entgültig vom UserControl ab und habe es geschafft, dass es trotzdem flüssig läuft. Das Problem lag einfach darin, dass ich nicht richtig mit "UpdateStyles" etc im Konstruktor umgegangen bin. Danke an @Artentus:

      Da ich nun vom UserControl ableite, muss ich keine Properties mehr als Shadows deklarieren und Browsable = False setzen. :)
      Der Marquee-Effekt ist in Arbeit und wird wahrscheinlich nun leichter zu implementieren sein. Das Update kann noch dauern, da ich auch nur gelegentlich dran bin.

      Auf was könnt Ihr euch freuen:
      • ToolTip kann nun angezeigt werden (anpassbar)
      • Besserer Designer, besserer Aufbau
      • Glaseffekt nun anpassbar (Dicke und ob man ihn nutzen möchte)
      • Bug Fixes
      • Marquee-Style (noch nicht 100% sicher)
      • Die ProgressBar hat nun einen Border


      Dank dem anpassbaren Glaseffekt sind nun auch Muster möglich, die Metro nahe kommen.

      lg
      #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 3 mal editiert, zuletzt von „Trade“ () aus folgendem Grund: Rechstchreibfehler

      Version 1.2 - Größtes Update mit vielen neuen Funktionen

      Ich bin sehr glücklich, dass ich nun endlich Version 1.2 freigeben kann.
      Zuerst sei gesagt: Es tut mir Leid, dass es so lange gedauert hat, aber es hat sich gelohnt. Zudem ein großes Dankeschön an @Artentus:. Er hat mir wertvolle Tipps gegeben und sogar eine schöne Architektur für den Marquee-Effekt hingelegt.

      Das größte Update bietet:

      • Glaseffekt nun anpassbar (Dicke und ob er angezeigt werden soll)
      • Man kann nun einen ToolTip anzeigen lassen (Property dafür ist ShowToolTip
      • Die ProgressBar hat nun einen schicken Border (Rand)
      • Es wird nun endgültig vom Control geerbt, sodass es sehr benutzerfreundlich geworden ist
      • Viele Bug-Fixes und Verbesserungen
      • Der lang ersehnte Marquee-Effekt ist nun verfügbar (Unter der Kategorie Animationen kann man die Property Style ändern)
      • Besserer Aufbau (überflüssiges entfernt und ProgressBar optimiert)
      • Komplett neuer Aufbau des Codes
      • Flüssig laufende ProgressBar bei allen Effekten und Kombinationen
      • Mehr...


      Wenn Ihr nun Vorschläge habt was ich noch einbauen könnte: Her damit!
      Viel Spaß mit der neuen Version. Bitte Probleme berichten.

      Alles wieder im Hautpost aktualisiert.
      #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 :!:
      Ich habe mir die Progressbar mal angeguckt. Ich finde sie sehr gut, nur sind noch ein paar unschöne Sachen:

      Der Glass-Effekt sieht komisch aus, wenn man ProgressbarColorBottom und Top auf das gleiche gestellt hat.

      Die Eigenschaft TextRenderingHint brauchst du nicht, da die nur gebraucht wird, wenn du Text auf die Progressbar zeichnest.

      Und die Progressbar zeichnet sich nicht gleich neu, wenn man eine Eigenschaft geändert hat, also man muss im Designer erst auf die Form klicken, damit sich die Progressbar neu zeichnet.

      Sonst ist die Progressbar super und du solltest auf jeden fall daran weiterarbeiten.
      Ok, ich habe wahrscheinlich nicht invalidiert. Das werde ich noch schnell fixen.
      Der Glasseffekt gehört so. Ich sehe da auch jetzt nichts komisches. Sieht ganz normal aus...

      Stimmt TextRenderingHint schmeiße ich raus! Danke! :)
      #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 :!:
      @Artentus: Hatte ich vor, aber sah nicht so schön aus :D Da gebe ich Jonas recht.

      Hier nochmal ein kleines Update 1.2.1:

      • TextRenderingHint rausgeworfen
      • Es wird nun überall invalidiert


      Alles wieder im Hauptpost aktualisiert.
      #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 :!: