//<Snippet2> // Draw the scroll bar in its normal state. protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); // Visual styles are not enabled. if (!ScrollBarRenderer.IsSupported) { this.Parent.Text = "CustomScrollBar Disabled"; return; } this.Parent.Text = "CustomScrollBar Enabled"; // Draw the scroll bar track. ScrollBarRenderer.DrawRightHorizontalTrack(e.Graphics, ClientRectangle, ScrollBarState.Normal); // Draw the thumb and thumb grip in the current state. ScrollBarRenderer.DrawHorizontalThumb(e.Graphics, thumbRectangle, thumbState); ScrollBarRenderer.DrawHorizontalThumbGrip(e.Graphics, thumbRectangle, thumbState); // Draw the scroll arrows in the current state. ScrollBarRenderer.DrawArrowButton(e.Graphics, leftArrowRectangle, leftButtonState); ScrollBarRenderer.DrawArrowButton(e.Graphics, rightArrowRectangle, rightButtonState); // Draw a highlighted rectangle in the left side of the scroll // bar track if the user has clicked between the left arrow // and thumb. if (leftBarClicked) { clickedBarRectangle.X = thumbLeftLimit; clickedBarRectangle.Width = thumbRectangle.X - thumbLeftLimit; ScrollBarRenderer.DrawLeftHorizontalTrack(e.Graphics, clickedBarRectangle, ScrollBarState.Pressed); } // Draw a highlighted rectangle in the right side of the scroll // bar track if the user has clicked between the right arrow // and thumb. else if (rightBarClicked) { clickedBarRectangle.X = thumbRectangle.X + thumbRectangle.Width; clickedBarRectangle.Width = thumbRightLimitRight - clickedBarRectangle.X; ScrollBarRenderer.DrawRightHorizontalTrack(e.Graphics, clickedBarRectangle, ScrollBarState.Pressed); } }
protected override void OnPaint(PaintEventArgs e) { if (!thumbenable && HideScrollBar && !DesignMode) { return; } if (FlatStyle == FlatStyle.System && ScrollBarRenderer.IsSupported) { ScrollBarArrowButtonState up = (mousepressed == MouseOver.MouseOverUp) ? ScrollBarArrowButtonState.UpPressed : (mouseover == MouseOver.MouseOverUp) ? ScrollBarArrowButtonState.UpHot : ScrollBarArrowButtonState.UpNormal; ScrollBarArrowButtonState down = (mousepressed == MouseOver.MouseOverDown) ? ScrollBarArrowButtonState.DownPressed : (mouseover == MouseOver.MouseOverUp) ? ScrollBarArrowButtonState.DownHot : ScrollBarArrowButtonState.DownNormal; ScrollBarState thumb = (mousepressed == MouseOver.MouseOverThumb) ? ScrollBarState.Pressed : (mouseover == MouseOver.MouseOverThumb) ? ScrollBarState.Hot : ScrollBarState.Normal; ScrollBarState track = ScrollBarState.Normal; if (!Enabled || !thumbenable) { up = ScrollBarArrowButtonState.UpDisabled; down = ScrollBarArrowButtonState.DownDisabled; thumb = ScrollBarState.Disabled; track = ScrollBarState.Disabled; } ScrollBarRenderer.DrawArrowButton(e.Graphics, upbuttonarea, up); ScrollBarRenderer.DrawArrowButton(e.Graphics, downbuttonarea, down); if (Enabled && thumbenable) { Rectangle upper = new Rectangle(sliderarea.X, sliderarea.Y, sliderarea.Width, thumbbuttonarea.Y - sliderarea.Y); Rectangle lower = new Rectangle(sliderarea.X, thumbbuttonarea.Bottom, sliderarea.Width, sliderarea.Bottom - thumbbuttonarea.Bottom); //Console.WriteLine("System " + upper + " l: " + lower); ScrollBarRenderer.DrawUpperVerticalTrack(e.Graphics, upper, track); ScrollBarRenderer.DrawLowerVerticalTrack(e.Graphics, lower, track); ScrollBarRenderer.DrawVerticalThumb(e.Graphics, thumbbuttonarea, thumb); } else { ScrollBarRenderer.DrawUpperVerticalTrack(e.Graphics, sliderarea, ScrollBarState.Disabled); } } else { using (Brush br = new SolidBrush(SliderColor)) e.Graphics.FillRectangle(br, sliderarea); using (Pen pr = new Pen(BorderColor)) e.Graphics.DrawRectangle(pr, borderrect); //System.Diagnostics.Debug.WriteLine("Scroll bar redraw " + Parent.Parent.Name + " " + e.Graphics.ClipBounds +" " + ClientRectangle + " " + sliderarea + " " + upbuttonarea + " " + downbuttonarea + " " + thumbbuttonarea); DrawButton(e.Graphics, upbuttonarea, MouseOver.MouseOverUp); DrawButton(e.Graphics, downbuttonarea, MouseOver.MouseOverDown); DrawButton(e.Graphics, thumbbuttonarea, MouseOver.MouseOverThumb); } }
private static void DrawModernArrow(Graphics g, Rectangle r, ScrollBarArrowButtonState state) { if (r.Width < 17 || r.Height < 18) { // ScrollBarRenderer does a terrible job at small sizes. So the image is drawn onto a larger // rectangle, and then the middle of that image is cropped out. Note: > 20, the a larger arrow // is used. using (Bitmap bmp = new Bitmap(Math.Max(20, r.Width), Math.Max(20, r.Height))) { using (var g2 = Graphics.FromImage(bmp)) { ScrollBarRenderer.DrawArrowButton(g2, new Rectangle(0, 0, bmp.Width, bmp.Height), state); using (Bitmap bmp2 = bmp.Clone(new Rectangle((bmp.Width - r.Width) / 2, (bmp.Height - r.Height) / 2, r.Width, r.Height), bmp.PixelFormat)) { g.DrawImageUnscaled(bmp2, 0, 0); } } } } else { ScrollBarRenderer.DrawArrowButton(g, r, state); } }
/// <summary> /// Paints the drop-down, including all items within the scrolled region /// and, if appropriate, the scrollbar. /// </summary> /// <param name="e"></param> protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); if (_scrollBarVisible) { Rectangle upper = new Rectangle(_scrollBar.DisplayRectangle.Left, _scrollBar.DisplayRectangle.Top, _scrollBar.DisplayRectangle.Width, _scrollBar.Thumb.Top - _scrollBar.DisplayRectangle.Top); Rectangle lower = new Rectangle(_scrollBar.DisplayRectangle.Left, _scrollBar.Thumb.Bottom, _scrollBar.DisplayRectangle.Width, _scrollBar.DisplayRectangle.Bottom - _scrollBar.Thumb.Bottom); if (_sourceControl.DrawWithVisualStyles && ScrollBarRenderer.IsSupported) { ScrollBarRenderer.DrawUpperVerticalTrack(e.Graphics, upper, GetScrollBarState(upper)); ScrollBarRenderer.DrawLowerVerticalTrack(e.Graphics, lower, GetScrollBarState(lower)); ScrollBarRenderer.DrawArrowButton(e.Graphics, _scrollBar.UpArrow, GetScrollBarStateUp()); ScrollBarRenderer.DrawArrowButton(e.Graphics, _scrollBar.DownArrow, GetScrollBarStateDown()); ScrollBarRenderer.DrawVerticalThumb(e.Graphics, _scrollBar.Thumb, GetScrollBarThumbState()); ScrollBarRenderer.DrawVerticalThumbGrip(e.Graphics, _scrollBar.Thumb, GetScrollBarThumbState()); } else { Rectangle bounds = _scrollBar.DisplayRectangle; bounds.Offset(1, 0); Rectangle up = _scrollBar.UpArrow; up.Offset(1, 0); Rectangle down = _scrollBar.DownArrow; down.Offset(1, 0); Rectangle thumb = _scrollBar.Thumb; thumb.Offset(1, 0); using (HatchBrush brush = new HatchBrush(HatchStyle.Percent50, SystemColors.ControlLightLight, SystemColors.Control)) { e.Graphics.FillRectangle(brush, bounds); } ControlPaint.DrawScrollButton(e.Graphics, up, ScrollButton.Up, GetButtonState(_scrollBar.UpArrow)); ControlPaint.DrawScrollButton(e.Graphics, down, ScrollButton.Down, GetButtonState(_scrollBar.DownArrow)); ControlPaint.DrawButton(e.Graphics, thumb, ButtonState.Normal); } } for (int i = _scrollOffset; i < (_scrollOffset + _numItemsDisplayed); i++) { bool highlighted = ((_highlightedItemIndex == i) && !_sourceControl.ShowCheckBoxes); NodeInfo item = _visibleItems[i]; // background if (highlighted) { e.Graphics.FillRectangle(SystemBrushes.Highlight, item.DisplayRectangle); } // image and glyphs if (item.Image != null) { Rectangle imgBounds = new Rectangle(item.DisplayRectangle.Location, item.Image.Size); e.Graphics.DrawImage(item.Image, imgBounds); if (_sourceControl.ShowCheckBoxes) { CheckBoxState state = GetCheckBoxState(item.Node.CheckState, item.CheckRectangle); Size chkSize = CheckBoxRenderer.GetGlyphSize(e.Graphics, state); CheckBoxRenderer.DrawCheckBox(e.Graphics, Point.Add(item.CheckRectangle.Location, new Size((item.CheckRectangle.Width - chkSize.Width) / 2, (item.CheckRectangle.Height - chkSize.Height) / 2)), state); } } Rectangle textBounds = new Rectangle(item.DisplayRectangle.X + item.Image.Width + 2, item.DisplayRectangle.Y, item.DisplayRectangle.Width - item.Image.Width - 4, _itemHeight); using (Font font = new Font(Font, _visibleItems[i].Node.FontStyle)) { TextRenderer.DrawText(e.Graphics, item.Node.Text, font, textBounds, highlighted ? SystemColors.HighlightText : ForeColor, TEXT_FORMAT_FLAGS); } if (highlighted && _sourceControl.Focused && _sourceControl.ShowsFocusCues) { ControlPaint.DrawFocusRectangle(e.Graphics, item.DisplayRectangle); } } }
// Render the splitter buttons based on system capability and button style private void DrawSplitterButtons(Graphics g) { if (splitterButtonStyle == ButtonStyle.Image) { if (!panel1Minimized) { if (splitterVertical) { g.DrawImage(splitterButtonBitmap, rectLeftDown); } else { g.DrawImage(bitmapUp, rectRightUp); } } if (!panel2Minimized) { if (splitterVertical) { g.DrawImage(bitmapRight, rectRightUp); } else { g.DrawImage(bitmapDown, rectLeftDown); } } } else if (splitterButtonStyle == ButtonStyle.PushButton) { // Map ScrollBarArrowButtonStates to PushButtonStates PushButtonState pbs1 = (PushButtonState)((int)button1State & 3); PushButtonState pbs2 = (PushButtonState)((int)button2State & 3); if (!panel1Minimized) { if (splitterVertical) { ButtonRenderer.DrawButton(g, rectLeftDown, pbs1); } else { ButtonRenderer.DrawButton(g, rectRightUp, pbs1); } if (splitterButtonBitmap != null) { if (splitterVertical) { g.DrawImage(splitterButtonBitmap, rectLeftDown); } else { g.DrawImage(bitmapUp, rectRightUp); } } } if (!panel2Minimized) { if (splitterVertical) { ButtonRenderer.DrawButton(g, rectRightUp, pbs2); } else { ButtonRenderer.DrawButton(g, rectLeftDown, pbs2); } if (splitterButtonBitmap != null) { if (splitterVertical) { g.DrawImage(bitmapRight, rectRightUp); } else { g.DrawImage(bitmapDown, rectLeftDown); } } } } else if (ScrollBarRenderer.IsSupported && splitterButtonStyle == ButtonStyle.ScrollBar) { if (!panel1Minimized) { if (splitterVertical) { ScrollBarRenderer.DrawArrowButton(g, rectLeftDown, button1State); } else { ScrollBarRenderer.DrawArrowButton(g, rectRightUp, button1State); } } if (!panel2Minimized) { if (splitterVertical) { ScrollBarRenderer.DrawArrowButton(g, rectRightUp, button2State); } else { ScrollBarRenderer.DrawArrowButton(g, rectLeftDown, button2State); } } } }
protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); if (comboBox1.SelectedItem == null) { return; } Graphics g = e.Graphics; Image i = Image.FromFile(@"accessories-character-map.png"); Font f = new Font("Microsoft Sans Serif", 8); switch (comboBox1.SelectedItem.ToString()) { case "ButtonRenderer": ButtonRenderer.DrawButton(g, new Rectangle(0, 125, 75, 23), System.Windows.Forms.VisualStyles.PushButtonState.Pressed); ButtonRenderer.DrawButton(g, new Rectangle(0, 25, 75, 23), System.Windows.Forms.VisualStyles.PushButtonState.Default); ButtonRenderer.DrawButton(g, new Rectangle(0, 50, 75, 23), System.Windows.Forms.VisualStyles.PushButtonState.Disabled); ButtonRenderer.DrawButton(g, new Rectangle(0, 75, 75, 23), System.Windows.Forms.VisualStyles.PushButtonState.Hot); ButtonRenderer.DrawButton(g, new Rectangle(0, 100, 75, 23), System.Windows.Forms.VisualStyles.PushButtonState.Normal); ButtonRenderer.DrawButton(g, new Rectangle(100, 125, 75, 23), true, System.Windows.Forms.VisualStyles.PushButtonState.Pressed); ButtonRenderer.DrawButton(g, new Rectangle(100, 25, 75, 23), true, System.Windows.Forms.VisualStyles.PushButtonState.Default); ButtonRenderer.DrawButton(g, new Rectangle(100, 50, 75, 23), true, System.Windows.Forms.VisualStyles.PushButtonState.Disabled); ButtonRenderer.DrawButton(g, new Rectangle(100, 75, 75, 23), true, System.Windows.Forms.VisualStyles.PushButtonState.Hot); ButtonRenderer.DrawButton(g, new Rectangle(100, 100, 75, 23), true, System.Windows.Forms.VisualStyles.PushButtonState.Normal); ButtonRenderer.DrawButton(g, new Rectangle(200, 125, 75, 23), i, new Rectangle(200, 128, 16, 16), true, System.Windows.Forms.VisualStyles.PushButtonState.Pressed); ButtonRenderer.DrawButton(g, new Rectangle(200, 25, 75, 23), i, new Rectangle(203, 28, 16, 16), true, System.Windows.Forms.VisualStyles.PushButtonState.Default); ButtonRenderer.DrawButton(g, new Rectangle(200, 50, 75, 23), i, new Rectangle(203, 53, 16, 16), false, System.Windows.Forms.VisualStyles.PushButtonState.Disabled); ButtonRenderer.DrawButton(g, new Rectangle(200, 75, 75, 23), i, new Rectangle(203, 78, 16, 16), true, System.Windows.Forms.VisualStyles.PushButtonState.Hot); ButtonRenderer.DrawButton(g, new Rectangle(200, 100, 75, 23), i, new Rectangle(203, 103, 16, 16), false, System.Windows.Forms.VisualStyles.PushButtonState.Normal); ButtonRenderer.DrawButton(g, new Rectangle(300, 125, 75, 23), "Hi there button!", f, true, System.Windows.Forms.VisualStyles.PushButtonState.Pressed); ButtonRenderer.DrawButton(g, new Rectangle(300, 25, 75, 23), "Hi there button!", f, true, System.Windows.Forms.VisualStyles.PushButtonState.Default); ButtonRenderer.DrawButton(g, new Rectangle(300, 50, 75, 23), "Hi there button!", f, false, System.Windows.Forms.VisualStyles.PushButtonState.Disabled); ButtonRenderer.DrawButton(g, new Rectangle(300, 75, 75, 23), "Hi there button!", f, true, System.Windows.Forms.VisualStyles.PushButtonState.Hot); ButtonRenderer.DrawButton(g, new Rectangle(300, 100, 75, 23), "Hi there button!", f, false, System.Windows.Forms.VisualStyles.PushButtonState.Normal); ButtonRenderer.DrawButton(g, new Rectangle(400, 125, 75, 23), "Hi there button!", f, TextFormatFlags.Left & TextFormatFlags.WordEllipsis, true, System.Windows.Forms.VisualStyles.PushButtonState.Pressed); ButtonRenderer.DrawButton(g, new Rectangle(400, 25, 75, 23), "Hi there button!", f, TextFormatFlags.Left & TextFormatFlags.WordEllipsis, true, System.Windows.Forms.VisualStyles.PushButtonState.Default); ButtonRenderer.DrawButton(g, new Rectangle(400, 50, 75, 23), "Hi there button!", f, TextFormatFlags.Left & TextFormatFlags.WordEllipsis, false, System.Windows.Forms.VisualStyles.PushButtonState.Disabled); ButtonRenderer.DrawButton(g, new Rectangle(400, 75, 75, 23), "Hi there button!", f, TextFormatFlags.Left & TextFormatFlags.WordEllipsis, true, System.Windows.Forms.VisualStyles.PushButtonState.Hot); ButtonRenderer.DrawButton(g, new Rectangle(400, 100, 75, 23), "Hi there button!", f, TextFormatFlags.Left & TextFormatFlags.WordEllipsis, false, System.Windows.Forms.VisualStyles.PushButtonState.Normal); ButtonRenderer.DrawButton(g, new Rectangle(500, 125, 75, 23), "Hi there button!", f, i, new Rectangle(500, 128, 16, 16), true, System.Windows.Forms.VisualStyles.PushButtonState.Pressed); ButtonRenderer.DrawButton(g, new Rectangle(500, 25, 75, 23), "Hi there button!", f, i, new Rectangle(500, 28, 16, 16), true, System.Windows.Forms.VisualStyles.PushButtonState.Default); ButtonRenderer.DrawButton(g, new Rectangle(500, 50, 75, 23), "Hi there button!", f, i, new Rectangle(500, 53, 16, 16), false, System.Windows.Forms.VisualStyles.PushButtonState.Disabled); ButtonRenderer.DrawButton(g, new Rectangle(500, 75, 75, 23), "Hi there button!", f, i, new Rectangle(500, 78, 16, 16), true, System.Windows.Forms.VisualStyles.PushButtonState.Hot); ButtonRenderer.DrawButton(g, new Rectangle(500, 100, 75, 23), "Hi there button!", f, i, new Rectangle(500, 103, 16, 16), false, System.Windows.Forms.VisualStyles.PushButtonState.Normal); ButtonRenderer.DrawButton(g, new Rectangle(600, 125, 75, 23), "Hi there button!", f, TextFormatFlags.Left & TextFormatFlags.WordEllipsis, i, new Rectangle(600, 128, 16, 16), true, System.Windows.Forms.VisualStyles.PushButtonState.Pressed); ButtonRenderer.DrawButton(g, new Rectangle(600, 25, 75, 23), "Hi there button!", f, TextFormatFlags.Left & TextFormatFlags.WordEllipsis, i, new Rectangle(600, 28, 16, 16), true, System.Windows.Forms.VisualStyles.PushButtonState.Default); ButtonRenderer.DrawButton(g, new Rectangle(600, 50, 75, 23), "Hi there button!", f, TextFormatFlags.Left & TextFormatFlags.WordEllipsis, i, new Rectangle(600, 53, 16, 16), false, System.Windows.Forms.VisualStyles.PushButtonState.Disabled); ButtonRenderer.DrawButton(g, new Rectangle(600, 75, 75, 23), "Hi there button!", f, TextFormatFlags.Left & TextFormatFlags.WordEllipsis, i, new Rectangle(600, 78, 16, 16), true, System.Windows.Forms.VisualStyles.PushButtonState.Hot); ButtonRenderer.DrawButton(g, new Rectangle(600, 100, 75, 23), "Hi there button!", f, TextFormatFlags.Left & TextFormatFlags.WordEllipsis, i, new Rectangle(600, 103, 16, 16), false, System.Windows.Forms.VisualStyles.PushButtonState.Normal); break; case "CheckBoxRenderer": CheckBoxRenderer.DrawCheckBox(g, new Point(5, 5), new Rectangle(8 + CheckBoxRenderer.GetGlyphSize(g, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal).Width, 5, 75, 14), "checkBox1", f, TextFormatFlags.Default, i, new Rectangle(90, 4, 16, 16), false, System.Windows.Forms.VisualStyles.CheckBoxState.CheckedDisabled); CheckBoxRenderer.DrawCheckBox(g, new Point(5, 25), new Rectangle(8 + CheckBoxRenderer.GetGlyphSize(g, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal).Width, 25, 75, 14), "checkBox1", f, TextFormatFlags.Default, i, new Rectangle(90, 24, 16, 16), false, System.Windows.Forms.VisualStyles.CheckBoxState.CheckedHot); CheckBoxRenderer.DrawCheckBox(g, new Point(5, 45), new Rectangle(8 + CheckBoxRenderer.GetGlyphSize(g, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal).Width, 45, 75, 14), "checkBox1", f, TextFormatFlags.Default, i, new Rectangle(90, 44, 16, 16), true, System.Windows.Forms.VisualStyles.CheckBoxState.CheckedNormal); CheckBoxRenderer.DrawCheckBox(g, new Point(5, 65), new Rectangle(8 + CheckBoxRenderer.GetGlyphSize(g, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal).Width, 65, 75, 14), "checkBox1", f, TextFormatFlags.Default, false, System.Windows.Forms.VisualStyles.CheckBoxState.CheckedPressed); CheckBoxRenderer.DrawCheckBox(g, new Point(5, 85), new Rectangle(8 + CheckBoxRenderer.GetGlyphSize(g, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal).Width, 85, 75, 14), "checkBox1", f, TextFormatFlags.Default, i, new Rectangle(90, 84, 16, 16), true, System.Windows.Forms.VisualStyles.CheckBoxState.MixedDisabled); CheckBoxRenderer.DrawCheckBox(g, new Point(5, 105), System.Windows.Forms.VisualStyles.CheckBoxState.MixedHot); CheckBoxRenderer.DrawCheckBox(g, new Point(5, 125), new Rectangle(8 + CheckBoxRenderer.GetGlyphSize(g, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal).Width, 125, 75, 14), "checkBox1", f, TextFormatFlags.Default, i, new Rectangle(90, 124, 16, 16), false, System.Windows.Forms.VisualStyles.CheckBoxState.MixedNormal); CheckBoxRenderer.DrawCheckBox(g, new Point(5, 145), new Rectangle(8 + CheckBoxRenderer.GetGlyphSize(g, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal).Width, 145, 75, 14), "checkBox1", f, i, new Rectangle(90, 144, 16, 16), true, System.Windows.Forms.VisualStyles.CheckBoxState.MixedPressed); CheckBoxRenderer.DrawCheckBox(g, new Point(5, 165), new Rectangle(8 + CheckBoxRenderer.GetGlyphSize(g, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal).Width, 165, 75, 14), "checkBox1", f, TextFormatFlags.Default, i, new Rectangle(90, 164, 16, 16), false, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedDisabled); CheckBoxRenderer.DrawCheckBox(g, new Point(5, 185), new Rectangle(8 + CheckBoxRenderer.GetGlyphSize(g, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal).Width, 185, 75, 14), "checkBox1", f, TextFormatFlags.Default, i, new Rectangle(90, 184, 16, 16), false, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedHot); CheckBoxRenderer.DrawCheckBox(g, new Point(5, 205), new Rectangle(8 + CheckBoxRenderer.GetGlyphSize(g, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal).Width, 205, 75, 14), "checkBox1", f, true, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal); CheckBoxRenderer.DrawCheckBox(g, new Point(5, 225), new Rectangle(8 + CheckBoxRenderer.GetGlyphSize(g, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal).Width, 225, 75, 14), "checkBox1", f, TextFormatFlags.Default, i, new Rectangle(90, 224, 16, 16), false, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedPressed); break; case "ComboBoxRenderer": if (!ComboBoxRenderer.IsSupported) { g.DrawString("Visual Styles not enabled", f, Brushes.Black, 0, 0); break; } ComboBoxRenderer.DrawTextBox(e.Graphics, new Rectangle(5, 5, 121, 21), System.Windows.Forms.VisualStyles.ComboBoxState.Normal); ComboBoxRenderer.DrawDropDownButton(e.Graphics, new Rectangle(109, 6, 16, 19), System.Windows.Forms.VisualStyles.ComboBoxState.Normal); ComboBoxRenderer.DrawTextBox(e.Graphics, new Rectangle(5, 35, 121, 21), this.Text, this.Font, System.Windows.Forms.VisualStyles.ComboBoxState.Hot); ComboBoxRenderer.DrawDropDownButton(e.Graphics, new Rectangle(109, 36, 16, 19), System.Windows.Forms.VisualStyles.ComboBoxState.Hot); ComboBoxRenderer.DrawTextBox(e.Graphics, new Rectangle(5, 65, 121, 21), this.Text, this.Font, new Rectangle(8, 65, 57, 21), System.Windows.Forms.VisualStyles.ComboBoxState.Disabled); ComboBoxRenderer.DrawDropDownButton(e.Graphics, new Rectangle(109, 66, 16, 19), System.Windows.Forms.VisualStyles.ComboBoxState.Disabled); ComboBoxRenderer.DrawTextBox(e.Graphics, new Rectangle(5, 95, 121, 21), this.Text, this.Font, TextFormatFlags.WordEllipsis, System.Windows.Forms.VisualStyles.ComboBoxState.Pressed); ComboBoxRenderer.DrawDropDownButton(e.Graphics, new Rectangle(109, 96, 16, 19), System.Windows.Forms.VisualStyles.ComboBoxState.Pressed); break; case "GroupBoxRenderer": Font f2 = new Font("Microsoft Sans Serif", 12); Font f3 = new Font("Microsoft Sans Serif", 14); Font f4 = new Font("Microsoft Sans Serif", 8); GroupBoxRenderer.DrawGroupBox(g, new Rectangle(5, 5, 150, 75), "My Group!", f, Color.Black, TextFormatFlags.Default, System.Windows.Forms.VisualStyles.GroupBoxState.Normal); GroupBoxRenderer.DrawGroupBox(g, new Rectangle(5, 105, 150, 75), "My Group!", f2, Color.Red, System.Windows.Forms.VisualStyles.GroupBoxState.Disabled); GroupBoxRenderer.DrawGroupBox(g, new Rectangle(5, 205, 150, 75), "My Group!", f3, TextFormatFlags.Default, System.Windows.Forms.VisualStyles.GroupBoxState.Normal); GroupBoxRenderer.DrawGroupBox(g, new Rectangle(5, 305, 150, 75), "My Group!", f4, System.Windows.Forms.VisualStyles.GroupBoxState.Disabled); GroupBoxRenderer.DrawGroupBox(g, new Rectangle(5, 405, 150, 75), System.Windows.Forms.VisualStyles.GroupBoxState.Normal); break; case "ProgressBarRenderer": if (!ProgressBarRenderer.IsSupported) { g.DrawString("Visual Styles not enabled", f, Brushes.Black, 0, 0); break; } g.DrawString("ChunkSpaceThickness: " + ProgressBarRenderer.ChunkSpaceThickness.ToString(), this.Font, Brushes.Black, 0, 0); g.DrawString("ChunkThickness: " + ProgressBarRenderer.ChunkThickness.ToString(), this.Font, Brushes.Black, 0, 20); ProgressBarRenderer.DrawHorizontalBar(g, new Rectangle(5, 40, 100, 20)); ProgressBarRenderer.DrawHorizontalChunks(g, new Rectangle(7, 42, 47, 16)); ProgressBarRenderer.DrawVerticalBar(g, new Rectangle(110, 40, 20, 100)); ProgressBarRenderer.DrawVerticalChunks(g, new Rectangle(112, 42, 16, 47)); break; case "RadioButtonRenderer": RadioButtonRenderer.DrawRadioButton(g, new Point(5, 5), new Rectangle(8 + RadioButtonRenderer.GetGlyphSize(g, System.Windows.Forms.VisualStyles.RadioButtonState.UncheckedNormal).Width, 5, 75, 14), "checkBox1", f, TextFormatFlags.Default, i, new Rectangle(90, 4, 16, 16), false, System.Windows.Forms.VisualStyles.RadioButtonState.CheckedDisabled); RadioButtonRenderer.DrawRadioButton(g, new Point(5, 25), new Rectangle(8 + RadioButtonRenderer.GetGlyphSize(g, System.Windows.Forms.VisualStyles.RadioButtonState.UncheckedNormal).Width, 25, 75, 14), "checkBox1", f, TextFormatFlags.Default, i, new Rectangle(90, 24, 16, 16), false, System.Windows.Forms.VisualStyles.RadioButtonState.CheckedHot); RadioButtonRenderer.DrawRadioButton(g, new Point(5, 45), new Rectangle(8 + RadioButtonRenderer.GetGlyphSize(g, System.Windows.Forms.VisualStyles.RadioButtonState.UncheckedNormal).Width, 45, 75, 14), "checkBox1", f, TextFormatFlags.Default, i, new Rectangle(90, 44, 16, 16), true, System.Windows.Forms.VisualStyles.RadioButtonState.CheckedNormal); RadioButtonRenderer.DrawRadioButton(g, new Point(5, 65), new Rectangle(8 + RadioButtonRenderer.GetGlyphSize(g, System.Windows.Forms.VisualStyles.RadioButtonState.UncheckedNormal).Width, 65, 75, 14), "checkBox1", f, TextFormatFlags.Default, false, System.Windows.Forms.VisualStyles.RadioButtonState.CheckedPressed); RadioButtonRenderer.DrawRadioButton(g, new Point(5, 85), new Rectangle(8 + RadioButtonRenderer.GetGlyphSize(g, System.Windows.Forms.VisualStyles.RadioButtonState.UncheckedNormal).Width, 85, 75, 14), "checkBox1", f, TextFormatFlags.Default, i, new Rectangle(90, 84, 16, 16), true, System.Windows.Forms.VisualStyles.RadioButtonState.UncheckedDisabled); RadioButtonRenderer.DrawRadioButton(g, new Point(5, 105), System.Windows.Forms.VisualStyles.RadioButtonState.UncheckedHot); RadioButtonRenderer.DrawRadioButton(g, new Point(5, 125), new Rectangle(8 + RadioButtonRenderer.GetGlyphSize(g, System.Windows.Forms.VisualStyles.RadioButtonState.UncheckedNormal).Width, 125, 75, 14), "checkBox1", f, TextFormatFlags.Default, i, new Rectangle(90, 124, 16, 16), false, System.Windows.Forms.VisualStyles.RadioButtonState.UncheckedNormal); RadioButtonRenderer.DrawRadioButton(g, new Point(5, 145), new Rectangle(8 + RadioButtonRenderer.GetGlyphSize(g, System.Windows.Forms.VisualStyles.RadioButtonState.UncheckedNormal).Width, 145, 75, 14), "checkBox1", f, i, new Rectangle(90, 144, 16, 16), true, System.Windows.Forms.VisualStyles.RadioButtonState.UncheckedPressed); break; case "ScrollBarRenderer": if (!ScrollBarRenderer.IsSupported) { g.DrawString("Visual Styles not enabled", f, Brushes.Black, 0, 0); break; } ScrollBarRenderer.DrawArrowButton(g, new Rectangle(5, 5, 18, 18), System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.DownDisabled); ScrollBarRenderer.DrawArrowButton(g, new Rectangle(25, 5, 18, 18), System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.DownHot); ScrollBarRenderer.DrawArrowButton(g, new Rectangle(45, 5, 18, 18), System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.DownNormal); ScrollBarRenderer.DrawArrowButton(g, new Rectangle(65, 5, 18, 18), System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.DownPressed); ScrollBarRenderer.DrawArrowButton(g, new Rectangle(85, 5, 18, 18), System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.LeftDisabled); ScrollBarRenderer.DrawArrowButton(g, new Rectangle(105, 5, 18, 18), System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.LeftHot); ScrollBarRenderer.DrawArrowButton(g, new Rectangle(125, 5, 18, 18), System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.LeftNormal); ScrollBarRenderer.DrawArrowButton(g, new Rectangle(145, 5, 18, 18), System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.LeftPressed); ScrollBarRenderer.DrawArrowButton(g, new Rectangle(165, 5, 18, 18), System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.RightDisabled); ScrollBarRenderer.DrawArrowButton(g, new Rectangle(185, 5, 18, 18), System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.RightHot); ScrollBarRenderer.DrawArrowButton(g, new Rectangle(205, 5, 18, 18), System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.RightNormal); ScrollBarRenderer.DrawArrowButton(g, new Rectangle(225, 5, 18, 18), System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.RightPressed); ScrollBarRenderer.DrawArrowButton(g, new Rectangle(245, 5, 18, 18), System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.UpDisabled); ScrollBarRenderer.DrawArrowButton(g, new Rectangle(265, 5, 18, 18), System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.UpHot); ScrollBarRenderer.DrawArrowButton(g, new Rectangle(285, 5, 18, 18), System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.UpNormal); ScrollBarRenderer.DrawArrowButton(g, new Rectangle(305, 5, 18, 18), System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.UpPressed); ScrollBarRenderer.DrawHorizontalThumb(g, new Rectangle(5, 25, 38, 18), System.Windows.Forms.VisualStyles.ScrollBarState.Disabled); ScrollBarRenderer.DrawHorizontalThumb(g, new Rectangle(45, 25, 38, 18), System.Windows.Forms.VisualStyles.ScrollBarState.Hot); ScrollBarRenderer.DrawHorizontalThumb(g, new Rectangle(85, 25, 38, 18), System.Windows.Forms.VisualStyles.ScrollBarState.Normal); ScrollBarRenderer.DrawHorizontalThumb(g, new Rectangle(125, 25, 38, 18), System.Windows.Forms.VisualStyles.ScrollBarState.Pressed); ScrollBarRenderer.DrawHorizontalThumbGrip(g, new Rectangle(5, 25, 38, 18), System.Windows.Forms.VisualStyles.ScrollBarState.Disabled); ScrollBarRenderer.DrawHorizontalThumbGrip(g, new Rectangle(45, 25, 38, 18), System.Windows.Forms.VisualStyles.ScrollBarState.Hot); ScrollBarRenderer.DrawHorizontalThumbGrip(g, new Rectangle(85, 25, 38, 18), System.Windows.Forms.VisualStyles.ScrollBarState.Normal); ScrollBarRenderer.DrawHorizontalThumbGrip(g, new Rectangle(125, 25, 38, 18), System.Windows.Forms.VisualStyles.ScrollBarState.Pressed); ScrollBarRenderer.DrawLeftHorizontalTrack(g, new Rectangle(5, 45, 38, 18), System.Windows.Forms.VisualStyles.ScrollBarState.Disabled); ScrollBarRenderer.DrawLeftHorizontalTrack(g, new Rectangle(45, 45, 38, 18), System.Windows.Forms.VisualStyles.ScrollBarState.Hot); ScrollBarRenderer.DrawLeftHorizontalTrack(g, new Rectangle(85, 45, 38, 18), System.Windows.Forms.VisualStyles.ScrollBarState.Normal); ScrollBarRenderer.DrawLeftHorizontalTrack(g, new Rectangle(125, 45, 38, 18), System.Windows.Forms.VisualStyles.ScrollBarState.Pressed); ScrollBarRenderer.DrawLowerVerticalTrack(g, new Rectangle(5, 65, 18, 38), System.Windows.Forms.VisualStyles.ScrollBarState.Disabled); ScrollBarRenderer.DrawLowerVerticalTrack(g, new Rectangle(25, 65, 18, 38), System.Windows.Forms.VisualStyles.ScrollBarState.Hot); ScrollBarRenderer.DrawLowerVerticalTrack(g, new Rectangle(45, 65, 18, 38), System.Windows.Forms.VisualStyles.ScrollBarState.Normal); ScrollBarRenderer.DrawLowerVerticalTrack(g, new Rectangle(65, 65, 18, 38), System.Windows.Forms.VisualStyles.ScrollBarState.Pressed); ScrollBarRenderer.DrawRightHorizontalTrack(g, new Rectangle(165, 45, 38, 18), System.Windows.Forms.VisualStyles.ScrollBarState.Disabled); ScrollBarRenderer.DrawRightHorizontalTrack(g, new Rectangle(205, 45, 38, 18), System.Windows.Forms.VisualStyles.ScrollBarState.Hot); ScrollBarRenderer.DrawRightHorizontalTrack(g, new Rectangle(245, 45, 38, 18), System.Windows.Forms.VisualStyles.ScrollBarState.Normal); ScrollBarRenderer.DrawRightHorizontalTrack(g, new Rectangle(285, 45, 38, 18), System.Windows.Forms.VisualStyles.ScrollBarState.Pressed); ScrollBarRenderer.DrawSizeBox(g, new Rectangle(5, 105, 18, 18), System.Windows.Forms.VisualStyles.ScrollBarSizeBoxState.LeftAlign); ScrollBarRenderer.DrawSizeBox(g, new Rectangle(25, 105, 18, 18), System.Windows.Forms.VisualStyles.ScrollBarSizeBoxState.RightAlign); ScrollBarRenderer.DrawUpperVerticalTrack(g, new Rectangle(85, 65, 18, 38), System.Windows.Forms.VisualStyles.ScrollBarState.Disabled); ScrollBarRenderer.DrawUpperVerticalTrack(g, new Rectangle(105, 65, 18, 38), System.Windows.Forms.VisualStyles.ScrollBarState.Hot); ScrollBarRenderer.DrawUpperVerticalTrack(g, new Rectangle(125, 65, 18, 38), System.Windows.Forms.VisualStyles.ScrollBarState.Normal); ScrollBarRenderer.DrawUpperVerticalTrack(g, new Rectangle(145, 65, 18, 38), System.Windows.Forms.VisualStyles.ScrollBarState.Pressed); ScrollBarRenderer.DrawVerticalThumb(g, new Rectangle(5, 105, 18, 38), System.Windows.Forms.VisualStyles.ScrollBarState.Disabled); ScrollBarRenderer.DrawVerticalThumb(g, new Rectangle(25, 105, 18, 38), System.Windows.Forms.VisualStyles.ScrollBarState.Hot); ScrollBarRenderer.DrawVerticalThumb(g, new Rectangle(45, 105, 18, 38), System.Windows.Forms.VisualStyles.ScrollBarState.Normal); ScrollBarRenderer.DrawVerticalThumb(g, new Rectangle(65, 105, 18, 38), System.Windows.Forms.VisualStyles.ScrollBarState.Pressed); ScrollBarRenderer.DrawVerticalThumbGrip(g, new Rectangle(5, 105, 18, 38), System.Windows.Forms.VisualStyles.ScrollBarState.Disabled); ScrollBarRenderer.DrawVerticalThumbGrip(g, new Rectangle(25, 105, 18, 38), System.Windows.Forms.VisualStyles.ScrollBarState.Hot); ScrollBarRenderer.DrawVerticalThumbGrip(g, new Rectangle(45, 105, 18, 38), System.Windows.Forms.VisualStyles.ScrollBarState.Normal); ScrollBarRenderer.DrawVerticalThumbGrip(g, new Rectangle(65, 105, 18, 38), System.Windows.Forms.VisualStyles.ScrollBarState.Pressed); g.DrawString(ScrollBarRenderer.GetSizeBoxSize(g, System.Windows.Forms.VisualStyles.ScrollBarState.Normal).ToString(), f, Brushes.Black, new PointF(5, 145)); g.DrawString(ScrollBarRenderer.GetThumbGripSize(g, System.Windows.Forms.VisualStyles.ScrollBarState.Normal).ToString(), f, Brushes.Black, new PointF(5, 165)); break; case "TabRenderer": if (!TabRenderer.IsSupported) { g.DrawString("Visual Styles not enabled", f, Brushes.Black, 0, 0); break; } TabRenderer.DrawTabPage(g, new Rectangle(5, 95, 700, 50)); TabRenderer.DrawTabItem(g, new Rectangle(5, 55, 70, 25), System.Windows.Forms.VisualStyles.TabItemState.Normal); TabRenderer.DrawTabItem(g, new Rectangle(95, 55, 70, 25), true, System.Windows.Forms.VisualStyles.TabItemState.Selected); TabRenderer.DrawTabItem(g, new Rectangle(185, 55, 70, 25), "Tab 1", f, System.Windows.Forms.VisualStyles.TabItemState.Normal); TabRenderer.DrawTabItem(g, new Rectangle(275, 55, 70, 25), i, new Rectangle(278, 58, 16, 16), false, System.Windows.Forms.VisualStyles.TabItemState.Hot); TabRenderer.DrawTabItem(g, new Rectangle(365, 55, 70, 25), "Tab 6 is too long", f, true, System.Windows.Forms.VisualStyles.TabItemState.Normal); TabRenderer.DrawTabItem(g, new Rectangle(455, 55, 70, 25), "My Tab Octopus", f, TextFormatFlags.WordEllipsis, false, System.Windows.Forms.VisualStyles.TabItemState.Disabled); TabRenderer.DrawTabItem(g, new Rectangle(545, 55, 70, 25), "Tab 7", f, i, new Rectangle(546, 56, 16, 16), true, System.Windows.Forms.VisualStyles.TabItemState.Normal); TabRenderer.DrawTabItem(g, new Rectangle(635, 55, 70, 25), "Tab 8", f, TextFormatFlags.WordEllipsis, i, new Rectangle(638, 58, 16, 16), false, System.Windows.Forms.VisualStyles.TabItemState.Disabled); break; case "TextBoxRenderer": if (!TextBoxRenderer.IsSupported) { g.DrawString("Visual Styles not enabled", f, Brushes.Black, 0, 0); break; } TextBoxRenderer.DrawTextBox(g, new Rectangle(5, 55, 95, 40), System.Windows.Forms.VisualStyles.TextBoxState.Assist); TextBoxRenderer.DrawTextBox(g, new Rectangle(105, 55, 95, 40), "This is my text box text!!!", f, System.Windows.Forms.VisualStyles.TextBoxState.Disabled); TextBoxRenderer.DrawTextBox(g, new Rectangle(205, 55, 95, 40), "This is my text box text!!!", f, new Rectangle(205, 55, 95, 40), System.Windows.Forms.VisualStyles.TextBoxState.Hot); TextBoxRenderer.DrawTextBox(g, new Rectangle(305, 55, 95, 40), "This is my text box text!!!", f, TextFormatFlags.WordEllipsis, System.Windows.Forms.VisualStyles.TextBoxState.Normal); TextBoxRenderer.DrawTextBox(g, new Rectangle(405, 55, 95, 40), "This is my text box text!!!", f, new Rectangle(405, 55, 95, 40), TextFormatFlags.WordEllipsis, System.Windows.Forms.VisualStyles.TextBoxState.Readonly); TextBoxRenderer.DrawTextBox(g, new Rectangle(505, 55, 95, 40), System.Windows.Forms.VisualStyles.TextBoxState.Selected); break; case "TrackBarRenderer": if (!TrackBarRenderer.IsSupported) { g.DrawString("Visual Styles not enabled", f, Brushes.Black, 0, 0); break; } TrackBarRenderer.DrawBottomPointingThumb(g, new Rectangle(5, 5, 12, 20), System.Windows.Forms.VisualStyles.TrackBarThumbState.Disabled); TrackBarRenderer.DrawBottomPointingThumb(g, new Rectangle(20, 5, 12, 20), System.Windows.Forms.VisualStyles.TrackBarThumbState.Hot); TrackBarRenderer.DrawBottomPointingThumb(g, new Rectangle(35, 5, 12, 20), System.Windows.Forms.VisualStyles.TrackBarThumbState.Normal); TrackBarRenderer.DrawBottomPointingThumb(g, new Rectangle(50, 5, 12, 20), System.Windows.Forms.VisualStyles.TrackBarThumbState.Pressed); TrackBarRenderer.DrawHorizontalThumb(g, new Rectangle(5, 45, 12, 20), System.Windows.Forms.VisualStyles.TrackBarThumbState.Disabled); TrackBarRenderer.DrawHorizontalThumb(g, new Rectangle(20, 45, 12, 20), System.Windows.Forms.VisualStyles.TrackBarThumbState.Hot); TrackBarRenderer.DrawHorizontalThumb(g, new Rectangle(35, 45, 12, 20), System.Windows.Forms.VisualStyles.TrackBarThumbState.Normal); TrackBarRenderer.DrawHorizontalThumb(g, new Rectangle(50, 45, 12, 20), System.Windows.Forms.VisualStyles.TrackBarThumbState.Pressed); TrackBarRenderer.DrawHorizontalTicks(g, new Rectangle(5, 75, 100, 20), 15, System.Windows.Forms.VisualStyles.EdgeStyle.Bump); TrackBarRenderer.DrawHorizontalTicks(g, new Rectangle(115, 75, 100, 20), 10, System.Windows.Forms.VisualStyles.EdgeStyle.Etched); TrackBarRenderer.DrawHorizontalTicks(g, new Rectangle(225, 75, 100, 20), 5, System.Windows.Forms.VisualStyles.EdgeStyle.Raised); TrackBarRenderer.DrawHorizontalTicks(g, new Rectangle(335, 75, 100, 20), 25, System.Windows.Forms.VisualStyles.EdgeStyle.Sunken); TrackBarRenderer.DrawHorizontalTrack(g, new Rectangle(5, 120, 100, 20)); TrackBarRenderer.DrawLeftPointingThumb(g, new Rectangle(5, 145, 20, 12), System.Windows.Forms.VisualStyles.TrackBarThumbState.Disabled); TrackBarRenderer.DrawLeftPointingThumb(g, new Rectangle(25, 145, 20, 12), System.Windows.Forms.VisualStyles.TrackBarThumbState.Hot); TrackBarRenderer.DrawLeftPointingThumb(g, new Rectangle(45, 145, 20, 12), System.Windows.Forms.VisualStyles.TrackBarThumbState.Normal); TrackBarRenderer.DrawLeftPointingThumb(g, new Rectangle(65, 145, 20, 12), System.Windows.Forms.VisualStyles.TrackBarThumbState.Pressed); TrackBarRenderer.DrawRightPointingThumb(g, new Rectangle(5, 165, 20, 12), System.Windows.Forms.VisualStyles.TrackBarThumbState.Disabled); TrackBarRenderer.DrawRightPointingThumb(g, new Rectangle(25, 165, 20, 12), System.Windows.Forms.VisualStyles.TrackBarThumbState.Hot); TrackBarRenderer.DrawRightPointingThumb(g, new Rectangle(45, 165, 20, 12), System.Windows.Forms.VisualStyles.TrackBarThumbState.Normal); TrackBarRenderer.DrawRightPointingThumb(g, new Rectangle(65, 165, 20, 12), System.Windows.Forms.VisualStyles.TrackBarThumbState.Pressed); TrackBarRenderer.DrawTopPointingThumb(g, new Rectangle(5, 185, 12, 20), System.Windows.Forms.VisualStyles.TrackBarThumbState.Disabled); TrackBarRenderer.DrawTopPointingThumb(g, new Rectangle(20, 185, 12, 20), System.Windows.Forms.VisualStyles.TrackBarThumbState.Hot); TrackBarRenderer.DrawTopPointingThumb(g, new Rectangle(35, 185, 12, 20), System.Windows.Forms.VisualStyles.TrackBarThumbState.Normal); TrackBarRenderer.DrawTopPointingThumb(g, new Rectangle(50, 185, 12, 20), System.Windows.Forms.VisualStyles.TrackBarThumbState.Pressed); TrackBarRenderer.DrawVerticalThumb(g, new Rectangle(5, 215, 20, 12), System.Windows.Forms.VisualStyles.TrackBarThumbState.Disabled); TrackBarRenderer.DrawVerticalThumb(g, new Rectangle(25, 215, 20, 12), System.Windows.Forms.VisualStyles.TrackBarThumbState.Hot); TrackBarRenderer.DrawVerticalThumb(g, new Rectangle(45, 215, 20, 12), System.Windows.Forms.VisualStyles.TrackBarThumbState.Normal); TrackBarRenderer.DrawVerticalThumb(g, new Rectangle(65, 215, 20, 12), System.Windows.Forms.VisualStyles.TrackBarThumbState.Pressed); TrackBarRenderer.DrawVerticalTicks(g, new Rectangle(5, 230, 20, 100), 15, System.Windows.Forms.VisualStyles.EdgeStyle.Bump); TrackBarRenderer.DrawVerticalTicks(g, new Rectangle(50, 230, 20, 100), 10, System.Windows.Forms.VisualStyles.EdgeStyle.Etched); TrackBarRenderer.DrawVerticalTicks(g, new Rectangle(95, 230, 20, 100), 5, System.Windows.Forms.VisualStyles.EdgeStyle.Raised); TrackBarRenderer.DrawVerticalTicks(g, new Rectangle(140, 230, 20, 100), 25, System.Windows.Forms.VisualStyles.EdgeStyle.Sunken); TrackBarRenderer.DrawVerticalTrack(g, new Rectangle(185, 230, 20, 100)); g.DrawString(TrackBarRenderer.GetBottomPointingThumbSize(g, System.Windows.Forms.VisualStyles.TrackBarThumbState.Normal).ToString(), f, Brushes.Black, new Point(5, 340)); g.DrawString(TrackBarRenderer.GetLeftPointingThumbSize(g, System.Windows.Forms.VisualStyles.TrackBarThumbState.Hot).ToString(), f, Brushes.Black, new Point(5, 370)); g.DrawString(TrackBarRenderer.GetRightPointingThumbSize(g, System.Windows.Forms.VisualStyles.TrackBarThumbState.Disabled).ToString(), f, Brushes.Black, new Point(5, 400)); g.DrawString(TrackBarRenderer.GetTopPointingThumbSize(g, System.Windows.Forms.VisualStyles.TrackBarThumbState.Pressed).ToString(), f, Brushes.Black, new Point(5, 430)); break; default: break; } }
/// <summary> /// Paints the drop-down, including all items within the scrolled region /// and, if appropriate, the scrollbar. /// </summary> /// <param name="e"></param> protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); if (scrollBarVisible) { Rectangle upper = new Rectangle(scrollBar.DisplayRectangle.Left, scrollBar.DisplayRectangle.Top, scrollBar.DisplayRectangle.Width, scrollBar.Thumb.Top - scrollBar.DisplayRectangle.Top); Rectangle lower = new Rectangle(scrollBar.DisplayRectangle.Left, scrollBar.Thumb.Bottom, scrollBar.DisplayRectangle.Width, scrollBar.DisplayRectangle.Bottom - scrollBar.Thumb.Bottom); if (sourceControl.DrawWithVisualStyles && ScrollBarRenderer.IsSupported) { ScrollBarRenderer.DrawUpperVerticalTrack(e.Graphics, upper, GetScrollBarState(upper)); ScrollBarRenderer.DrawLowerVerticalTrack(e.Graphics, lower, GetScrollBarState(lower)); ScrollBarRenderer.DrawArrowButton(e.Graphics, scrollBar.UpArrow, GetScrollBarStateUp()); ScrollBarRenderer.DrawArrowButton(e.Graphics, scrollBar.DownArrow, GetScrollBarStateDown()); ScrollBarRenderer.DrawVerticalThumb(e.Graphics, scrollBar.Thumb, GetScrollBarThumbState()); ScrollBarRenderer.DrawVerticalThumbGrip(e.Graphics, scrollBar.Thumb, GetScrollBarThumbState()); } else { Rectangle bounds = scrollBar.DisplayRectangle; bounds.Offset(1, 0); Rectangle up = scrollBar.UpArrow; up.Offset(1, 0); Rectangle down = scrollBar.DownArrow; down.Offset(1, 0); Rectangle thumb = scrollBar.Thumb; thumb.Offset(1, 0); System.Drawing.Drawing2D.HatchBrush brush = new System.Drawing.Drawing2D.HatchBrush(System.Drawing.Drawing2D.HatchStyle.Percent50, SystemColors.ControlLightLight, SystemColors.Control); e.Graphics.FillRectangle(brush, bounds); ControlPaint.DrawScrollButton(e.Graphics, up, ScrollButton.Up, GetButtonState(scrollBar.UpArrow)); ControlPaint.DrawScrollButton(e.Graphics, down, ScrollButton.Down, GetButtonState(scrollBar.DownArrow)); ControlPaint.DrawButton(e.Graphics, thumb, ButtonState.Normal); } } for (int i = scrollOffset; i < (scrollOffset + numItemsDisplayed); i++) { bool highlighted = (highlightedItemIndex == i); NodeInfo item = visibleItems[i]; // background if (highlighted) { e.Graphics.FillRectangle(SystemBrushes.Highlight, item.DisplayRectangle); } // image and glyphs if (item.Image != null) { e.Graphics.DrawImage(item.Image, new Rectangle(item.DisplayRectangle.Location, item.Image.Size)); } Font font = new Font(Font, visibleItems[i].Node.FontStyle); Rectangle textBounds = new Rectangle(item.DisplayRectangle.X + item.Image.Width + 2, item.DisplayRectangle.Y, item.DisplayRectangle.Width - item.Image.Width - 4, itemHeight); TextRenderer.DrawText(e.Graphics, item.Node.Text, font, textBounds, highlighted ? SystemColors.HighlightText : ForeColor, TEXT_FORMAT_FLAGS); } }
private SafeHandleGDI GetBufferArrow2() { SafeHandleGDI target; if (this._arrow2Down) { target = this._hbitmapArrow2Pressed; } else if (this._arrow2Hover) { target = this._hbitmapArrow2Hot; } else { target = this._hbitmapArrow2; } if (target != null) { return(target); } if (this.arrow2.Width <= 0 || this.arrow2.Height <= 0) { return(null); } using (var bmp = new Bitmap(this.arrow2.Width, this.arrow2.Height)) { using (var g = Graphics.FromImage(bmp)) { if (ScrollBarRenderer.IsSupported) { if (this.Horizontal) { var s4 = this._arrow2Down ? ScrollBarArrowButtonState.RightPressed : this._arrow2Hover ? ScrollBarArrowButtonState.RightHot : ScrollBarArrowButtonState.RightNormal; ScrollBarRenderer.DrawArrowButton(g, new Rectangle(0, 0, this.arrow2.Width, this.arrow2.Height), s4); } else { var s4 = this._arrow2Down ? ScrollBarArrowButtonState.DownPressed : this._arrow2Hover ? ScrollBarArrowButtonState.DownHot : ScrollBarArrowButtonState.DownNormal; ScrollBarRenderer.DrawArrowButton(g, new Rectangle(0, 0, this.arrow2.Width, this.arrow2.Height), s4); } } else { ControlPaint.DrawScrollButton( g, new Rectangle(0, 0, this.arrow2.Width, this.arrow2.Height), this.Horizontal ? ScrollButton.Right : ScrollButton.Down, this._arrow2Down ? ButtonState.Pushed : ButtonState.Normal); } } target = new SafeHandleGDI(bmp.GetHbitmap()); } if (this._arrow2Down) { return(this._hbitmapArrow2Pressed = target); } if (this._arrow2Hover) { return(this._hbitmapArrow2Hot = target); } return(this._hbitmapArrow2 = target); }
////////////////////////////////////////////////////////////////////////////////////// // Windows Event Handlers ////////////////////////////////////////////////////////////////////////////////////// #region Windows Event Handlers /// <summary> /// Draw the arrow. You might be wondering why I didn't use AdjustableArrowCap from /// the .NET API. The width and height specified for that class didn't seem to have /// anything to do with pixels, and thus it was hard to use when a pixel region is /// given. After playing with the math and getting right arrows that were different /// from left arrows of the same size, I gave up and drew them myself. /// </summary> /// <param name="pe">PaintEventArgs</param> protected override void OnPaint(PaintEventArgs pe) { // draw a standard button base.OnPaint(pe); // text is not allowed if (this.Text.Length > 0) { return; } Rectangle rcArrow = this.ClientRectangle; if ((rcArrow.Width < 8) || (rcArrow.Height < 8)) { // can't draw the arrow return; } // buffer around the arrow rcArrow.Inflate(-4, -4); int PixelHeight = rcArrow.Height; int PixelWidth = rcArrow.Width; int OffsetX = rcArrow.Left; int OffsetY = rcArrow.Top; if ((m_Direction == ArrowButtonDirection.Left) || (m_Direction == ArrowButtonDirection.Right)) { // cap the width int MaxWidth = PixelHeight / 2; if ((PixelHeight % 2) == 1) { // odd numbers round up ++MaxWidth; } if (PixelWidth > MaxWidth) { // Offset lets us center the arrow OffsetX = rcArrow.Left + ((PixelWidth - MaxWidth) / 2); PixelWidth = MaxWidth; } else if (PixelWidth < MaxWidth) { // constrict in the other direction PixelHeight = PixelWidth * 2 - 1; } OffsetY = rcArrow.Top + (rcArrow.Height / 2); } else { // cap the Height for vertical arrows int MaxHeight = PixelWidth / 2; if ((PixelWidth % 2) == 1) { // odd numbers round up ++MaxHeight; } if (PixelHeight > MaxHeight) { // Offset lets us center the arrow OffsetY = rcArrow.Top + ((PixelHeight - MaxHeight) / 2); PixelHeight = MaxHeight; } else if (PixelHeight < MaxHeight) { // constrict in the other direction PixelWidth = PixelHeight * 2 - 1; } OffsetX = rcArrow.Left + (rcArrow.Width / 2); } //Debug.WriteLine( // "Arrow dir: " + m_Direction.ToString("d") + // " pixel width:" + PixelWidth.ToString("d") + // " height:" + PixelHeight.ToString("d")); Pen capPen = new Pen(Color.Black); if (!ScrollBarRenderer.IsSupported) { if (m_Direction == ArrowButtonDirection.Left) { pe.Graphics.DrawLine(capPen, OffsetX, OffsetY, OffsetX + PixelWidth - 1, OffsetY); int SliceHeight = 1; for (int ii = OffsetX + 1; ii < (OffsetX + PixelWidth); ii++) { pe.Graphics.DrawLine(capPen, ii, OffsetY - SliceHeight, ii, OffsetY + SliceHeight); ++SliceHeight; } // for ii } if (m_Direction == ArrowButtonDirection.Right) { pe.Graphics.DrawLine(capPen, OffsetX + PixelWidth, OffsetY, OffsetX + 1, OffsetY); int SliceHeight = 1; for (int ii = (OffsetX + PixelWidth - 1); ii >= (OffsetX + 1); ii--) { pe.Graphics.DrawLine(capPen, ii, OffsetY - SliceHeight, ii, OffsetY + SliceHeight); ++SliceHeight; } // for ii } else if (m_Direction == ArrowButtonDirection.Up) { pe.Graphics.DrawLine(capPen, OffsetX, OffsetY, OffsetX, OffsetY + PixelHeight - 1); int SliceWidth = 1; for (int ii = OffsetY + 1; ii < (OffsetY + PixelHeight); ii++) { pe.Graphics.DrawLine(capPen, OffsetX - SliceWidth, ii, OffsetX + SliceWidth, ii); ++SliceWidth; } // for ii } else if (m_Direction == ArrowButtonDirection.Down) { pe.Graphics.DrawLine(capPen, OffsetX, OffsetY + PixelHeight, OffsetX, OffsetY + 1); int SliceWidth = 1; for (int ii = (OffsetY + PixelHeight - 1); ii >= (OffsetY + 1); ii--) { pe.Graphics.DrawLine(capPen, OffsetX - SliceWidth, ii, OffsetX + SliceWidth, ii); ++SliceWidth; } // for ii } } else { switch (m_Direction) { case ArrowButtonDirection.Left: ScrollBarRenderer.DrawArrowButton(pe.Graphics, this.ClientRectangle, System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.LeftNormal); break; case ArrowButtonDirection.Right: ScrollBarRenderer.DrawArrowButton(pe.Graphics, this.ClientRectangle, System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.RightNormal); break; case ArrowButtonDirection.Up: ScrollBarRenderer.DrawArrowButton(pe.Graphics, this.ClientRectangle, System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.UpNormal); break; case ArrowButtonDirection.Down: ScrollBarRenderer.DrawArrowButton(pe.Graphics, this.ClientRectangle, System.Windows.Forms.VisualStyles.ScrollBarArrowButtonState.DownNormal); break; } } } // OnPaint()