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:
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:
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.
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:
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:
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
- Private Sub ExpanderPanel1_ExpandedChanged(ByVal sender As System.Object, ByVal e As EventArgs) Handles ExpanderPanel1.ExpandedChanged
- If ExpanderPanel1.Expanded Then
- Me.Height += (ExpanderBottomPanel1.ExpandedHeigth - ExpanderBottomPanel1.CollapsedHeigth)
- Else
- Me.Height -= (ExpanderBottomPanel1.ExpandedHeigth - ExpanderBottomPanel1.CollapsedHeigth)
- End If
- 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“ ()