AeroSuite Control-Library

    • Beta
    • Open Source

    Es gibt 50 Antworten in diesem Thema. Der letzte Beitrag () ist von ExteNesia.de.

      AeroSuite Control-Library


      Beschreibung:
      Die Aerosuite ist eine WinForms Control Library, welche erweiterte Funktionalität für bereits bestehende und neue Controls bietet. Anders als die meisten (alle) vergleichbaren Libraries unterstützt diese jede denkbare Plattform von Windows XP bis Windows 10 und Linux (über Mono). Jedes Control wird - wenn möglich - vom System gezeichnet. Wird dies vom Betriebssystem nicht unterstützt, wird das Control "manuell" gezeichnet. Bisher gibt es zwar noch nicht viele Controls, allerdings sind schon viele weitere bereits implementiert - sie warten nur noch darauf, überarbeitet und veröffentlicht zu werden. Alle bisher verfügbaren Controls sind vollständig implementiert und bereit zur Nutzung. Zudem wurden sie unter Windows XP, 7, 8 und 10 sowie Linux Mint mit Mono auf Bugs getestet.

      Control-Übersicht:
      Siehe GitHub.
      Aufgrund der ständigen Änderungen finde ich es momentan nicht sinnvoll, 2 verschiedene Übersichten zu pflegen. Sobald die Entwicklung der Library weiter fortgeschritten sein wird, werde ich aber auch hier eine Übersicht erstellen.



      Verwendete Programmiersprache(n) und IDE(s):
      C# / Visual Studio 2015 Ultimate / Visual Studio 2013 Community Edition

      Systemanforderungen:
      .NET Framework 4.0
      Windows XP/Vista/7/8/10 oder Linux

      Download(s):
      Binaries im Anhang (Bitte benennt die Dll vor der Einbindung in Visual Studio zu AeroSuite.dll um, sonst kommt es eventuell zu Fehlern)
      Der Sourcecode ist auf GitHub verfügbar.

      Lizenz/Weitergabe:
      MIT License / tl;dr Legal / Open Source Initiative
      Namensnennung ist erwünscht (z.B. "Dieses Projekt nutzt die AeroSuite von Stefan Baumann")

      Viel Spaß!
      Stefan
      Dateien

      Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „nafets“ ()

      Finde ich recht nice, schickes Icon übrigens!
      Kann man sicherlich gebrauchen, wenn man mal Anwendungen erstellt und mal ein paar Aero-Controls braucht (kenne das :P), dann ist es nicht mehr mühsam selbst WinAPI etc. zu bedienen, zumal das ja teils in Deiner Library anders gerendert wird, was ich gesehen habe. Muss sagen, Aero ist auch was recht schickes so, nicht immer nur Metro. ^^

      Würde mich freuen, wenn Du damit dann also einen PullRequest machen könntest.
      Bin mal gespannt, was noch so für Controls kommen. ^^

      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 :!:
      Wenn du drauf bestehst ;)

      Hab mir das Ganze mal angeschaut und bin begeistert. Gerade für Leute wie mich, die zu "faul" sind sich wegen solcher Sachen in der WinAPI zu bedienen oder sich die Spezifikationen ausm Netz zu suchen, ist so eine Bibliothek verdammt praktisch.
      Ich habe auch schon damit begonnen sie zu benutzen und in ein Projekt einzubinden, wo mir genau sowas noch fehlte. Gute Arbeit und lass das bloß nicht untern Tisch fallen!

      Gruß
      @bomberman2910
      Danke :)

      @Parmaster
      Ich denke mal, dass man sie so einbinden kann wie jede andere Control-Library auch.
      Getestet hab ich sie, indem ich einfach die Test-App in verschiedene VMs kopiert habe. Da ich Xamarin Studio/MonoDevelop nicht nutze, kann ich dir leider nichts genaueres sagen.
      @Parmaster
      Genau ;)



      Mal ein kleines Update:
      Mittlerweile habe ich 5 weitere Controls fertiggestellt: Neu verfügbar sind die AeroProgressBar & VerticalAeroProgressBar (ProgressBar mit States: Normal, Error & Paused), das CaptionLabel, ein CommandLink-Control und der ShieldButton. Außerdem wurde die Unterstützung der Controls ausgeweitet, sodass die Controls nun besser auf Linux und Windows XP funktionieren. Zuletzt wurden noch die Performance verbessert und kleinere Fehler behoben.

      AeroSuite 0.2.dll: vb-paradise.de/index.php/Attac…e450f622f4e2f1aabbd294c97
      Klassendiagramm für neue Controls: vb-paradise.de/index.php/Attac…e450f622f4e2f1aabbd294c97

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „nafets“ ()

      Welche Verweise usw. braucht man dafür?

      Ich bekomme immer eine Fehlermeldung, wahrscheinlich hab ich nur was vergessen einzustellen.

      Hier ist mal die Fehlermeldung:

      Quellcode

      1. ​System.InvalidOperationException wurde nicht behandelt.
      2. HResult=-2146233079
      3. Message=Fehler beim Erstellen des Formulars. Weitere Informationen finden Sie in Exception.InnerException. Fehler: Der Typ "AeroSuite.Controls.CaptionLabel" in der Assembly "AeroSuite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" konnte nicht geladen werden..
      4. Source=AeroSuite
      5. StackTrace:
      6. bei AeroSuite.My.MyProject.MyForms.Create__Instance__[T](T Instance) in 17d14f5c-a337-4978-8281-53493378c1071.vb:Zeile 190.
      7. bei AeroSuite.My.MyProject.MyForms.get_Form1()
      8. bei AeroSuite.My.MyApplication.OnCreateMainForm() in c:\users\ich\documents\visual studio 2013\Projects\AeroSuite\AeroSuite\My Project\Application.Designer.vb:Zeile 35.
      9. bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
      10. bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
      11. bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
      12. bei AeroSuite.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:Zeile 81.
      13. bei System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
      14. bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
      15. bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
      16. bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
      17. bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      18. bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      19. bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
      20. bei System.Threading.ThreadHelper.ThreadStart()
      21. InnerException: System.TypeLoadException
      22. HResult=-2146233054
      23. Message=Der Typ "AeroSuite.Controls.CaptionLabel" in der Assembly "AeroSuite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" konnte nicht geladen werden.
      24. Source=AeroSuite
      25. TypeName=AeroSuite.Controls.CaptionLabel
      26. StackTrace:
      27. bei AeroSuite.Form1.InitializeComponent()
      28. bei AeroSuite.Form1..ctor()
      29. InnerException:
      Was steht denn in der InnerException drin?
      Eigentlich gibt es nämlich keine besonderen Verweise - es ist ja auch das Ziel, dass diese Library ohne andere Assemblies auf jeder Plattform läuft.
      Ich werds nachher unten beim Hauptpost dazu schreiben.

      Allerdings habe ich gerade noch einen Fehler entdeckt welcher verhindert, dass die Controls auf den verschiedenen Plattformen automatisch angepasst werden. Ich würde für den Moment empfehlen, die Library nicht zu nutzen - in ca. einer Stunde wird es aber einen Fix geben.



      Da ich keinen Doppelpost machen kann/soll, hier ein weiteres kleines Statusupdate:
      Der Fehler sollte nun komplett gefixt sein. Genauere Informationen findet ihr beim Commit #89 auf GitHub. Ein neuer Build mit dem Fix folgt gleich ;)

      Nachtrag:
      Der aktuelle Build ist jetzt im Startpost verfügbar.

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „nafets“ ()

      Da ich für eine Art Assistent Aero-Controls brauche, um das Design den aktuellen Windows-Versionen anzupassen, kommt mir das CaptionLabel sehr gelegen :thumbsup:

      Nur mal als Anregung: Bisher ist es ja so, dass z.B. für den NavigationButton das Standarddesign des aktuellen Betriebssystems verwendet wird. Wie wäre es denn, wenn man sich das Design aussuchen könnte? In dem Zuge fände ich es dann auch sinnvoll, wenn der normale Button eine solche Designüberarbeitung bekäme.
      Wahrscheinlich das Aussehen, das ja auf den Systemen unterschiedlich ist.

      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 :!:
      Ich bin mir einfach nicht sicher, was genau er will: Will er die Möglichkeit, z.B. einen Button im Windows 7-Stil auf Windows XP zu rendern oder die Möglichkeit, eigenen eigenen Stil für den Button zu erstellen?
      Der eigene Stil wäre im Rahmen einer AeroSuite wohl doch etwas zu viel verlangt und meiner Meinung nach irgendwie ein bisschen unnötig. Ich meinte schon z.B. den Stil des Windows 7-Button in Windows 8 oder xp.
      Das ist soweit ich weiß nicht möglich. Ein eigener Stil wäre ein Klacks aber das ist nicht möglich, da der Button/Whatever ja vom System gerendert wird - nicht von mir. Tut mir Leid.