.NET - Overzicht VisualStyleElements
- Datum:
- Auteur: Stefan Cruysberghs
In .NET kan je met de VisualStyleRenderer klasse (namespace System.Windows.Forms.VisualStyles) alle grafische elementen (knop, tab, checkbox, ...) uit het actieve XP Windows thema tekenen op een Graphics klasse (=GDI+ drawing surface).
C# voorbeeld
private void Form1_Paint(object sender, PaintEventArgs e)
{
// Check if XP theme is available
if (Application.RenderWithVisualStyles)
{
// Draw button with size 100,30
if (VisualStyleRenderer.IsElementDefined(
VisualStyleElement.Button.PushButton.Normal))
{
VisualStyleRenderer renderer = new VisualStyleRenderer(VisualStyleElement.Button.PushButton.Normal);
Rectangle buttonRect = new Rectangle(10, 10, 100, 30);
// Draw button
renderer.DrawBackground(e.Graphics, buttonRect);
}
// Draw checked checkbox with default size
if (VisualStyleRenderer.IsElementDefined(
VisualStyleElement.Button.CheckBox.CheckedHot))
{
VisualStyleRenderer renderer = new VisualStyleRenderer(VisualStyleElement.Button.CheckBox.CheckedNormal);
// Get the system-defined size of the element
Graphics g = this.CreateGraphics();
Size checkboxSize = renderer.GetPartSize(g, ThemeSizeType.True);
g.Dispose();
Rectangle checkboxRect = new Rectangle(new Point(10, 50), checkboxSize);
// Draw checkbox
renderer.DrawBackground(e.Graphics, checkboxRect);
}
}
}
Op de MSDN website staat een mooi demo programma waarin je alle VisualStyleElements via een boomstructuur kan bekijken.
- http://msdn2.microsoft.com/en-us/library/system.windows.forms.visualstyles.visualstylerenderer.aspx
- http://msdn2.microsoft.com/en-us/library/system.windows.forms.visualstyles.visualstyleelement.aspx
Soms is het echter handiger om in een visueel overzicht het juiste element te zoeken. Daarom heb ik alle elementen (van het standaard blauwe XP thema) naar PGN afbeeldingen geëxporteerd en hieronder op één pagina verzameld.
Button.PushButton.Normal | ExplorerBar.HeaderBackground.Normal | TrackBar.Track.Normal | |||
Button.PushButton.Hot | ExplorerBar.HeaderClose.Normal | TrackBar.TrackVertical.Normal | |||
Button.PushButton.Pressed | ExplorerBar.HeaderClose.Hot | TrackBar.Thumb.Normal | |||
Button.PushButton.Disabled | ExplorerBar.HeaderClose.Pressed | TrackBar.Thumb.Hot | |||
Button.PushButton.Default | ExplorerBar.HeaderPin.Normal | TrackBar.Thumb.Pressed | |||
Button.RadioButton.UncheckedNormal | ExplorerBar.HeaderPin.Hot | TrackBar.Thumb.Focused | |||
Button.RadioButton.UncheckedHot | ExplorerBar.HeaderPin.Pressed | TrackBar.Thumb.Disabled | |||
Button.RadioButton.UncheckedPressed | ExplorerBar.HeaderPin.SelectedNormal | TrackBar.ThumbBottom.Normal | |||
Button.RadioButton.UncheckedDisabled | ExplorerBar.HeaderPin.SelectedHot | TrackBar.ThumbBottom.Hot | |||
Button.RadioButton.CheckedNormal | ExplorerBar.HeaderPin.SelectedPressed | TrackBar.ThumbBottom.Pressed | |||
Button.RadioButton.CheckedHot | ExplorerBar.IEBarMenu.Normal | TrackBar.ThumbBottom.Focused | |||
Button.RadioButton.CheckedPressed | ExplorerBar.IEBarMenu.Hot | TrackBar.ThumbBottom.Disabled | |||
Button.RadioButton.CheckedDisabled | ExplorerBar.IEBarMenu.Pressed | TrackBar.ThumbTop.Normal | |||
Button.CheckBox.UncheckedNormal | ExplorerBar.NormalGroupBackground.Normal | TrackBar.ThumbTop.Hot | |||
Button.CheckBox.UncheckedHot | ExplorerBar.NormalGroupCollapse.Normal | TrackBar.ThumbTop.Pressed | |||
Button.CheckBox.UncheckedPressed | ExplorerBar.NormalGroupCollapse.Hot | TrackBar.ThumbTop.Focused | |||
Button.CheckBox.UncheckedDisabled | ExplorerBar.NormalGroupCollapse.Pressed | TrackBar.ThumbTop.Disabled | |||
Button.CheckBox.CheckedNormal | ExplorerBar.NormalGroupExpand.Normal | TrackBar.ThumbVertical.Normal | |||
Button.CheckBox.CheckedHot | ExplorerBar.NormalGroupExpand.Hot | TrackBar.ThumbVertical.Hot | |||
Button.CheckBox.CheckedPressed | ExplorerBar.NormalGroupExpand.Pressed | TrackBar.ThumbVertical.Pressed | |||
Button.CheckBox.CheckedDisabled | ExplorerBar.NormalGroupHead.Normal | TrackBar.ThumbVertical.Focused | |||
Button.CheckBox.MixedNormal | ExplorerBar.SpecialGroupBackground.Normal | TrackBar.ThumbVertical.Disabled | |||
Button.CheckBox.MixedHot | ExplorerBar.SpecialGroupCollapse.Normal | TrackBar.ThumbLeft.Normal | |||
Button.CheckBox.MixedPressed | ExplorerBar.SpecialGroupCollapse.Hot | TrackBar.ThumbLeft.Hot | |||
Button.CheckBox.MixedDisabled | ExplorerBar.SpecialGroupCollapse.Pressed | TrackBar.ThumbLeft.Pressed | |||
Button.GroupBox.Normal | ExplorerBar.SpecialGroupExpand.Normal | TrackBar.ThumbLeft.Focused | |||
Button.GroupBox.Disabled | ExplorerBar.SpecialGroupExpand.Hot | TrackBar.ThumbLeft.Disabled | |||
ComboBox.DropDownButton.Normal | ExplorerBar.SpecialGroupExpand.Pressed | TrackBar.ThumbRight.Normal | |||
ComboBox.DropDownButton.Hot | ExplorerBar.SpecialGroupHead.Normal | TrackBar.ThumbRight.Hot | |||
ComboBox.DropDownButton.Pressed | Header.Item.Normal | TrackBar.ThumbRight.Pressed | |||
ComboBox.DropDownButton.Disabled | Header.Item.Hot | TrackBar.ThumbRight.Focused | |||
Spin.Up.Normal | Header.Item.Pressed | TrackBar.ThumbRight.Disabled | |||
Spin.Up.Hot | ProgressBar.Bar.Normal | TrackBar.Ticks.Normal | |||
Spin.Up.Pressed | ProgressBar.BarVertical.Normal | TrackBar.TicksVertical.Normal | |||
Spin.Up.Disabled | ProgressBar.Chunk.Normal | TreeView.Glyph.Closed | |||
Spin.Down.Normal | ProgressBar.ChunkVertical.Normal | TreeView.Glyph.Opened | |||
Spin.Down.Hot | Rebar.Gripper.Normal | TextBox.TextEdit.Normal | |||
Spin.Down.Pressed | Rebar.GripperVertical.Normal | TextBox.TextEdit.Hot | |||
Spin.Down.Disabled | Rebar.Band.Normal | TextBox.TextEdit.Selected | |||
Spin.UpHorizontal.Normal | Rebar.Chevron.Normal | TextBox.TextEdit.Disabled | |||
Spin.UpHorizontal.Hot | Rebar.Chevron.Hot | TextBox.TextEdit.Focused | |||
Spin.UpHorizontal.Pressed | Rebar.Chevron.Pressed | TextBox.TextEdit.ReadOnly | |||
Spin.UpHorizontal.Disabled | Rebar.ChevronVertical.Normal | TextBox.TextEdit.Assist | |||
Spin.DownHorizontal.Normal | Rebar.ChevronVertical.Hot | Window.Caption.Active | |||
Spin.DownHorizontal.Hot | Rebar.ChevronVertical.Pressed | Window.Caption.Inactive | |||
Spin.DownHorizontal.Pressed | StartPanel.UserPane.Normal | Window.Caption.Disabled | |||
Spin.DownHorizontal.Disabled | StartPanel.MorePrograms.Normal | Window.SmallCaption.Active | |||
ScrollBar.ArrowButton.UpNormal | StartPanel.MoreProgramsArrow.Normal | Window.SmallCaption.Inactive | |||
ScrollBar.ArrowButton.UpHot | StartPanel.MoreProgramsArrow.Hot | Window.SmallCaption.Disabled | |||
ScrollBar.ArrowButton.UpPressed | StartPanel.MoreProgramsArrow.Pressed | Window.MinCaption.Active | |||
ScrollBar.ArrowButton.UpDisabled | StartPanel.ProgList.Normal | Window.MinCaption.Inactive | |||
ScrollBar.ArrowButton.DownNormal | StartPanel.ProgListSeparator.Normal | Window.MinCaption.Disabled | |||
ScrollBar.ArrowButton.DownHot | StartPanel.PlaceList.Normal | Window.MaxCaption.Active | |||
ScrollBar.ArrowButton.DownPressed | StartPanel.PlaceListSeparator.Normal | Window.MaxCaption.Inactive | |||
ScrollBar.ArrowButton.DownDisabled | StartPanel.LogOff.Normal | Window.MaxCaption.Disabled | |||
ScrollBar.ArrowButton.LeftNormal | StartPanel.LogOffButtons.Normal | Window.FrameLeft.Active | |||
ScrollBar.ArrowButton.LeftHot | StartPanel.LogOffButtons.Hot | Window.FrameLeft.Inactive | |||
ScrollBar.ArrowButton.LeftPressed | StartPanel.LogOffButtons.Pressed | Window.FrameRight.Active | |||
ScrollBar.ArrowButton.LeftDisabled | StartPanel.UserPicture.Normal | Window.FrameRight.Inactive | |||
ScrollBar.ArrowButton.RightNormal | Status.Bar.Normal | Window.FrameBottom.Active | |||
ScrollBar.ArrowButton.RightHot | Status.Pane.Normal | Window.FrameBottom.Inactive | |||
ScrollBar.ArrowButton.RightPressed | Status.GripperPane.Normal | Window.SmallFrameLeft.Active | |||
ScrollBar.ArrowButton.RightDisabled | Status.Gripper.Normal | Window.SmallFrameLeft.Inactive | |||
ScrollBar.ThumbButtonHorizontal.Normal | TaskBand.GroupCount.Normal | Window.SmallFrameRight.Active | |||
ScrollBar.ThumbButtonHorizontal.Hot | TaskBand.FlashButton.Normal | Window.SmallFrameRight.Inactive | |||
ScrollBar.ThumbButtonHorizontal.Pressed | TaskBand.FlashButtonGroupMenu.Normal | Window.SmallFrameBottom.Active | |||
ScrollBar.ThumbButtonHorizontal.Disabled | Taskbar.BackgroundBottom.Normal | Window.SmallFrameBottom.Inactive | |||
ScrollBar.ThumbButtonVertical.Normal | Taskbar.BackgroundRight.Normal | Window.MinButton.Normal | |||
ScrollBar.ThumbButtonVertical.Hot | Taskbar.BackgroundTop.Normal | Window.MinButton.Hot | |||
ScrollBar.ThumbButtonVertical.Pressed | Taskbar.BackgroundLeft.Normal | Window.MinButton.Pressed | |||
ScrollBar.ThumbButtonVertical.Disabled | Taskbar.SizingBarBottom.Normal | Window.MinButton.Disabled | |||
ScrollBar.RightTrackHorizontal.Normal | Taskbar.SizingBarRight.Normal | Window.MdiMinButton.Normal | |||
ScrollBar.RightTrackHorizontal.Hot | Taskbar.SizingBarTop.Normal | Window.MdiMinButton.Hot | |||
ScrollBar.RightTrackHorizontal.Pressed | Taskbar.SizingBarLeft.Normal | Window.MdiMinButton.Pressed | |||
ScrollBar.RightTrackHorizontal.Disabled | ToolBar.Button.Normal | Window.MdiMinButton.Disabled | |||
ScrollBar.LeftTrackHorizontal.Normal | ToolBar.Button.Hot | Window.MaxButton.Normal | |||
ScrollBar.LeftTrackHorizontal.Hot | ToolBar.Button.Pressed | Window.MaxButton.Hot | |||
ScrollBar.LeftTrackHorizontal.Pressed | ToolBar.Button.Disabled | Window.MaxButton.Pressed | |||
ScrollBar.LeftTrackHorizontal.Disabled | ToolBar.Button.Checked | Window.MaxButton.Disabled | |||
ScrollBar.LowerTrackVertical.Normal | ToolBar.Button.HotChecked | Window.CloseButton.Normal | |||
ScrollBar.LowerTrackVertical.Hot | ToolBar.DropDownButton.Normal | Window.CloseButton.Hot | |||
ScrollBar.LowerTrackVertical.Pressed | ToolBar.DropDownButton.Hot | Window.CloseButton.Pressed | |||
ScrollBar.LowerTrackVertical.Disabled | ToolBar.DropDownButton.Pressed | Window.CloseButton.Disabled | |||
ScrollBar.UpperTrackVertical.Normal | ToolBar.DropDownButton.Disabled | Window.SmallCloseButton.Normal | |||
ScrollBar.UpperTrackVertical.Hot | ToolBar.DropDownButton.Checked | Window.SmallCloseButton.Hot | |||
ScrollBar.UpperTrackVertical.Pressed | ToolBar.DropDownButton.HotChecked | Window.SmallCloseButton.Pressed | |||
ScrollBar.UpperTrackVertical.Disabled | ToolBar.SplitButton.Normal | Window.SmallCloseButton.Disabled | |||
ScrollBar.GripperHorizontal.Normal | ToolBar.SplitButton.Hot | Window.MdiCloseButton.Normal | |||
ScrollBar.GripperVertical.Normal | ToolBar.SplitButton.Pressed | Window.MdiCloseButton.Hot | |||
ScrollBar.SizeBox.RightAlign | ToolBar.SplitButton.Disabled | Window.MdiCloseButton.Pressed | |||
ScrollBar.SizeBox.LeftAlign | ToolBar.SplitButton.Checked | Window.MdiCloseButton.Disabled | |||
Tab.TabItem.Normal | ToolBar.SplitButton.HotChecked | Window.RestoreButton.Normal | |||
Tab.TabItem.Hot | ToolBar.SplitButtonDropDown.Normal | Window.RestoreButton.Hot | |||
Tab.TabItem.Pressed | ToolBar.SplitButtonDropDown.Hot | Window.RestoreButton.Pressed | |||
Tab.TabItem.Disabled | ToolBar.SplitButtonDropDown.Pressed | Window.RestoreButton.Disabled | |||
Tab.TabItemLeftEdge.Normal | ToolBar.SplitButtonDropDown.Disabled | Window.MdiRestoreButton.Normal | |||
Tab.TabItemLeftEdge.Hot | ToolBar.SplitButtonDropDown.Checked | Window.MdiRestoreButton.Hot | |||
Tab.TabItemLeftEdge.Pressed | ToolBar.SplitButtonDropDown.HotChecked | Window.MdiRestoreButton.Pressed | |||
Tab.TabItemLeftEdge.Disabled | ToolBar.SeparatorHorizontal.Normal | Window.MdiRestoreButton.Disabled | |||
Tab.TabItemRightEdge.Normal | ToolBar.SeparatorVertical.Normal | Window.HelpButton.Normal | |||
Tab.TabItemRightEdge.Hot | ToolTip.Close.Normal | Window.HelpButton.Hot | |||
Tab.TabItemRightEdge.Pressed | ToolTip.Close.Hot | Window.HelpButton.Pressed | |||
Tab.TabItemRightEdge.Disabled | ToolTip.Close.Pressed | Window.HelpButton.Disabled | |||
Tab.TabItemBothEdges.Normal | Window.Dialog.Normal | ||||
Tab.TopTabItem.Normal | Window.CaptionSizingTemplate.Normal | ||||
Tab.TopTabItem.Hot | Window.SmallCaptionSizingTemplate.Normal | ||||
Tab.TopTabItem.Pressed | |||||
Tab.TopTabItem.Disabled | |||||
Tab.TopTabItemLeftEdge.Normal | |||||
Tab.TopTabItemLeftEdge.Hot | |||||
Tab.TopTabItemLeftEdge.Pressed | |||||
Tab.TopTabItemLeftEdge.Disabled | |||||
Tab.TopTabItemRightEdge.Normal | |||||
Tab.TopTabItemRightEdge.Hot | |||||
Tab.TopTabItemRightEdge.Pressed | |||||
Tab.TopTabItemRightEdge.Disabled | |||||
Tab.TopTabItemBothEdges.Normal | |||||
Tab.Pane.Normal |