AeroControls

    • Release

    Es gibt 44 Antworten in diesem Thema. Der letzte Beitrag () ist von fsoftware.

      AeroControls

      Beschreibung:
      Eine kleine Sammlung von Controls die sich mit der Zeit angesammelt haben und ich nun in eine Library verpackt habe.
      Die Controls sind hauptsächlich entstanden um dem Look and Feel von Windows Vista und höher nahezukommen bzw. weil die .Net-Controls einiges zu Wünschen übrig lassen.
      Es ist keine reine Control-Bibliothek sondern hat auch noch ein paar hilfreiche Funktionen.

      Screenshots:


      Klassendiagramm:


      Klassenbeschreibungen:
      Spoiler anzeigen

      Utils
      NormalizeFont(Control As Control, [Recursive As Boolean = True])
      "Normalisiert" die Schrift im angegeben Control entsprechen der Systemschriftart (soll die nicht-WindowsVista/7-konformen Standardschriftarten von VS ausmerzen)
      Setzt die Schriftart von Control auf den Standard System-Font;
      setzt die Standart-Schriftgröße vom Visual-Studio-Designer auf die Standard-Systemschriftgröße;
      setzt FlatStyle auf 'System' (wenn verfügbar; z.B. Buttons) -> hübschere Hover-Animationen etc.
      wenn Recursive wird die Funktion rekursiv auf alle Child-Controls angewandt
      Z.B.:
      bei einem Label: Sans Serif 8,25pt wird zu Segoe UI 9pt
      Sans Serif 14pt wird zu Segoe UI 14pt
      Aufrufbeispiel: In einer Form:

      VB.NET-Quellcode

      1. AeroControls.Utils.NormalizeFont(Me)

      BitmapsEqual(Bitmap1 As Bitmap, Bitmap2 As Bitmap)
      prüft zwei Bitmaps auf Gleichheit
      MakeThumbnail(Image As Image, MaxWidth As Integer, MaxHeight As Integer) As Image
      Erstellt ein Thumbnail dessen Abmessungen MaxWidth und MaxHeight nicht überschreiten. Behält das Original-Seitenverhältnis bei.
      SetExplorerWindowTheme(Control As Control)
      Weist einem Control das 'explorer'-theme zu. (Z.b. bei einem TreeView für ein Aero-konformes Design)

      BottomPanel
      Ein Panel das oft in Dialogen zu finden ist, gedacht für OK/Cancel/etc.-Buttons

      InfoPanel
      Ein bläuliches Panel wie im Windows-Explorer, gedacht zum anzeigen von Informationen/Details

      CaptionLabel
      Ein Label das der blauen Standardüberschrift von Vista/7 entspricht

      SeperatorLabel
      Ein Label mit horizontaler Linie

      AeroLinkLabel
      Ein Aero-konformes LinkLabel. Das Standard-LinkLabel von .Net hat nicht die richtige Farbe und zeigt bei Hover einen veralteten Hand-Cursor an (aus WinXP-Zeiten).
      IsLink: wenn false wird es als ganz normales Label angezeigt
      NavigateOnClick: wenn true wird beim Click der Label-Text bzw. das Command direkt ausgeführt (Process.start)
      Command: wenn vorhanden, wird es beim Click ausgeführt, sonst der Label-Text.

      HotkeyBox
      Eine Textbox die auf Eingaben von Hotkeys reagiert und diese darstellt.
      Hotkey: die Tasten des Hotkeys
      HotkeyModifiers: die Modifier des Hotkeys
      Ctrl-/Shift-/Alt-String: der für diese Modifier angezeigte Text

      ShieldButton
      Ein Button mit dem UAC-Schild
      Außerdem enthält diese Klasse noch die Shared-Methode AddShieldToButton, die jedem Button das Shield hinzufügen kann.

      Expander
      Ein Expander wie er oft in Dialogen/Task Dialogs zu finden ist.
      Wenn sich Expanded ändert wird ExpandedChanged geworfen.

      ExpanderPanel
      Ein Panel, ähnlich dem BottomPanel, das sich aus-/einfährt wenn der Expander betätigt wird.
      Expanded: setzt/fragt ab ob das panel ein- oder ausgefahren ist.
      CollapsedHeight: die Höhe im Collapsed-Zustand (dementsprechend wird auch die Trennlinie gezeichnet)
      ExpandedHeigth: die Höhe im ausgefahrenen Zustand
      ExpanderVisible: ob der Expander sichtbar ist
      Wenn sich Expanded ändert wird ExpandedChanged geworfen.

      Um die Größe des Forms entsprechend zu ändern, kann z.B. so auf das ExpandedChanged-Event reagiert werden:

      VB.NET-Quellcode

      1. Private Sub ExpanderPanel1_ExpandedChanged(ByVal sender As System.Object, ByVal e As EventArgs) Handles ExpanderPanel1.ExpandedChanged
      2. If ExpanderPanel1.Expanded Then
      3. Me.Height += (ExpanderBottomPanel1.ExpandedHeigth - ExpanderBottomPanel1.CollapsedHeigth)
      4. Else
      5. Me.Height -= (ExpanderBottomPanel1.ExpandedHeigth - ExpanderBottomPanel1.CollapsedHeigth)
      6. End If
      7. End Sub

      Die Controls sind alle im Designer verwendbar. Beim ExpanderPanel empfiehlt es sich, die Form im ausgefahrenen Modus zu designen und beim Form_load Expanded auf false zu setzen. Wenn ExpandedChanged wie im Bsp. oben gehandlet wird, sollte alles funktionieren.
      Außerdem haben diese Controls standardmäßig schon das konforme (Segoe UI, 9pt)-Font.
      Achtung: wenn NormalizeFont auf eine Form angewendet wird und sich dann zur Laufzeit das Layout der Form ändert, liegt das daran dass die AutoScaleMode-Eigenschaft der Form auf Font gesetzt ist! Da durch NormalizeFont die Font-Größe der Form geändert wird wirkt sich das dann auf das Layout aus.

      Verwendete Programmiersprache:
      Visual Basic .NET (IDE: VB 2010 Ultimate)

      Systemanforderungen:
      .NET Framework 2.0

      Download:
      AeroControls.dll

      Lizenz/Weitergabe:
      Freeware

      Namensnennung:
      "verwendet AeroControls von Alexander Wais" o. Ä. im About-Fenster

      Die Controls habe ich alle selbst gemacht.
      Verbesserungsvorschläge sind natürlich willkommen.
      Ich schätze mit der Zeit werden sich auch noch mehr Controls ansammeln.

      Dieser Beitrag wurde bereits 10 mal editiert, zuletzt von „squisheemixxa“ ()

      Kleine Anmerkung: Du hast "Height" falschgeschrieben. ;)

      Sieht sehr gut aus und ist sicher nützlich.
      Mal schauen, vielleicht verwende ich es irgendwann mal.

      Neues Control

      Es gibt jetzt das "HeaderPanel" das man aus Windows/Explorer kennt (siehe Screenshots).
      außerdem ein paar kleine Verbesserungen.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „squisheemixxa“ ()

      Neue Controls etc.

      Es gibt wieder ein paar neue Controls:
      • AeroListView und AeroTreeView: haben den Style von Windows Explorer, außerdem werden beim TreeView die Pfeile zum auf-/zuklappen bei MOuseover ein/ausgeblendet
      • AnimatedPictureBox: eine PictureBox die animierte GIFs anzeigen kann
      • ToolStripEx: ein Toolstrip, der auch auf Mausklicks reagiert, wenn die Form inaktiv ist (speziell bei Buttons // sonst muss man immer erst einmal in die Form klicken, damit man Buttons im Toolstrip betätigen kann)

      Neue Funktion in den Utils:
      • IsAeroGlassenabled: True, wenn AeroGlass am System aktiviert ist
      mal sehen, wenn ich mal zeit hab mach ich das vlt. als kleines "extra" ;)
      eigentlich ist das ja nur eine ansammlung von sachen, die ich bis jetzt oft in meinen programmen gebraucht habe, und nicht die ich extra für hier gemacht habe

      kassor schrieb:

      Ist es möglich die Fontfarbe etc. vom Headerpanel zu bearbeiten? Iwie funktioniert das nicht..
      nein kann man nicht einstellen, kommt vielleicht noch ... aber du kannst den text leer lassen und ein eigenes label im panel machen

      Hatschi schrieb:





      Zitat von »squisheemixxa«



      AnimatedPictureBox: eine PictureBox die animierte GIFs anzeigen kann


      Hm also ich weiß nicht womit du programmierst, aber das Standard Picturebox Control kann ebenfalls GIF abspielen/anzeigen. (VB 2010)
      also bei mir zeigts keine animierten gifs an, das ist soweit ich weiß einfach so bei der picturebox.
      komisch, als ich das damal gebraucht hab, hat es nicht funktioniert (VB2010/net 3.5). hab dann im netz workarounds dafür gefunden (also hatten auch andere das problem). werds zur sicherheit drinnenlassen, vlt. brauchts ja doch irgendwer.

      //edit:

      im internet gibts genug leute die dasselbe problem haben, anscheinend funktionieren gifs nicht wenn man sie im designer der picturebox hinzufügt.
      so wars damals bei mir auch. also doch ganz nützlich ...

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „squisheemixxa“ ()