ToolStripProfessionalRenderer Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zpracovává funkce malování objektů ToolStrip pomocí vlastní palety a zjednodušeného stylu.
public ref class ToolStripProfessionalRenderer : System::Windows::Forms::ToolStripRenderer
public class ToolStripProfessionalRenderer : System.Windows.Forms.ToolStripRenderer
type ToolStripProfessionalRenderer = class
inherit ToolStripRenderer
Public Class ToolStripProfessionalRenderer
Inherits ToolStripRenderer
- Dědičnost
Příklady
Následující příklad kódu ukazuje, jak vytvořit složený ovládací prvek, který napodobuje navigační podokno poskytované aplikací Microsoft® Outlook®. Úplný výpis kódu najdete v tématu Postupy: Vytvoření ovládacího prvku ToolStrip s profesionálním stylem.
internal class StackRenderer : ToolStripProfessionalRenderer
{
private static Bitmap titleBarGripBmp;
private static string titleBarGripEnc = @"Qk16AQAAAAAAADYAAAAoAAAAIwAAAAMAAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5ANj+RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5ANj+RzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMANj+";
// Define titlebar colors.
private static Color titlebarColor1 = Color.FromArgb(89, 135, 214);
private static Color titlebarColor2 = Color.FromArgb(76, 123, 204);
private static Color titlebarColor3 = Color.FromArgb(63, 111, 194);
private static Color titlebarColor4 = Color.FromArgb(50, 99, 184);
private static Color titlebarColor5 = Color.FromArgb(38, 88, 174);
private static Color titlebarColor6 = Color.FromArgb(25, 76, 164);
private static Color titlebarColor7 = Color.FromArgb(12, 64, 154);
private static Color borderColor = Color.FromArgb(0, 0, 128);
static StackRenderer()
{
titleBarGripBmp = StackView.DeserializeFromBase64(titleBarGripEnc);
}
public StackRenderer()
{
}
private void DrawTitleBar(Graphics g, Rectangle rect)
{
// Assign the image for the grip.
Image titlebarGrip = titleBarGripBmp;
// Fill the titlebar.
// This produces the gradient and the rounded-corner effect.
g.DrawLine(new Pen(titlebarColor1), rect.X, rect.Y, rect.X + rect.Width, rect.Y);
g.DrawLine(new Pen(titlebarColor2), rect.X, rect.Y + 1, rect.X + rect.Width, rect.Y + 1);
g.DrawLine(new Pen(titlebarColor3), rect.X, rect.Y + 2, rect.X + rect.Width, rect.Y + 2);
g.DrawLine(new Pen(titlebarColor4), rect.X, rect.Y + 3, rect.X + rect.Width, rect.Y + 3);
g.DrawLine(new Pen(titlebarColor5), rect.X, rect.Y + 4, rect.X + rect.Width, rect.Y + 4);
g.DrawLine(new Pen(titlebarColor6), rect.X, rect.Y + 5, rect.X + rect.Width, rect.Y + 5);
g.DrawLine(new Pen(titlebarColor7), rect.X, rect.Y + 6, rect.X + rect.Width, rect.Y + 6);
// Center the titlebar grip.
g.DrawImage(
titlebarGrip,
new Point(rect.X + ((rect.Width / 2) - (titlebarGrip.Width / 2)),
rect.Y + 1));
}
// This method handles the RenderGrip event.
protected override void OnRenderGrip(ToolStripGripRenderEventArgs e)
{
DrawTitleBar(
e.Graphics,
new Rectangle(0, 0, e.ToolStrip.Width, 7));
}
// This method handles the RenderToolStripBorder event.
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
{
DrawTitleBar(
e.Graphics,
new Rectangle(0, 0, e.ToolStrip.Width, 7));
}
// This method handles the RenderButtonBackground event.
protected override void OnRenderButtonBackground(ToolStripItemRenderEventArgs e)
{
Graphics g = e.Graphics;
Rectangle bounds = new Rectangle(Point.Empty, e.Item.Size);
Color gradientBegin = Color.FromArgb(203, 225, 252);
Color gradientEnd = Color.FromArgb(125, 165, 224);
ToolStripButton button = e.Item as ToolStripButton;
if (button.Pressed || button.Checked)
{
gradientBegin = Color.FromArgb(254, 128, 62);
gradientEnd = Color.FromArgb(255, 223, 154);
}
else if (button.Selected)
{
gradientBegin = Color.FromArgb(255, 255, 222);
gradientEnd = Color.FromArgb(255, 203, 136);
}
using (Brush b = new LinearGradientBrush(
bounds,
gradientBegin,
gradientEnd,
LinearGradientMode.Vertical))
{
g.FillRectangle(b, bounds);
}
e.Graphics.DrawRectangle(
SystemPens.ControlDarkDark,
bounds);
g.DrawLine(
SystemPens.ControlDarkDark,
bounds.X,
bounds.Y,
bounds.Width - 1,
bounds.Y);
g.DrawLine(
SystemPens.ControlDarkDark,
bounds.X,
bounds.Y,
bounds.X,
bounds.Height - 1);
ToolStrip toolStrip = button.Owner;
ToolStripButton nextItem = button.Owner.GetItemAt(
button.Bounds.X,
button.Bounds.Bottom + 1) as ToolStripButton;
if (nextItem == null)
{
g.DrawLine(
SystemPens.ControlDarkDark,
bounds.X,
bounds.Height - 1,
bounds.X + bounds.Width - 1,
bounds.Height - 1);
}
}
}
Friend Class StackRenderer
Inherits ToolStripProfessionalRenderer
Private Shared titleBarGripBmp As Bitmap
Private Shared titleBarGripEnc As String = "Qk16AQAAAAAAADYAAAAoAAAAIwAAAAMAAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5ANj+RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5ANj+RzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMANj+"
' Define titlebar colors.
Private Shared titlebarColor1 As Color = Color.FromArgb(89, 135, 214)
Private Shared titlebarColor2 As Color = Color.FromArgb(76, 123, 204)
Private Shared titlebarColor3 As Color = Color.FromArgb(63, 111, 194)
Private Shared titlebarColor4 As Color = Color.FromArgb(50, 99, 184)
Private Shared titlebarColor5 As Color = Color.FromArgb(38, 88, 174)
Private Shared titlebarColor6 As Color = Color.FromArgb(25, 76, 164)
Private Shared titlebarColor7 As Color = Color.FromArgb(12, 64, 154)
Private Shared borderColor As Color = Color.FromArgb(0, 0, 128)
Shared Sub New()
titleBarGripBmp = StackView.DeserializeFromBase64(titleBarGripEnc)
End Sub
Public Sub New()
End Sub
Private Sub DrawTitleBar(ByVal g As Graphics, ByVal rect As Rectangle)
' Assign the image for the grip.
Dim titlebarGrip As Image = titleBarGripBmp
' Fill the titlebar.
' This produces the gradient and the rounded-corner effect.
g.DrawLine(New Pen(titlebarColor1), rect.X, rect.Y, rect.X + rect.Width, rect.Y)
g.DrawLine(New Pen(titlebarColor2), rect.X, rect.Y + 1, rect.X + rect.Width, rect.Y + 1)
g.DrawLine(New Pen(titlebarColor3), rect.X, rect.Y + 2, rect.X + rect.Width, rect.Y + 2)
g.DrawLine(New Pen(titlebarColor4), rect.X, rect.Y + 3, rect.X + rect.Width, rect.Y + 3)
g.DrawLine(New Pen(titlebarColor5), rect.X, rect.Y + 4, rect.X + rect.Width, rect.Y + 4)
g.DrawLine(New Pen(titlebarColor6), rect.X, rect.Y + 5, rect.X + rect.Width, rect.Y + 5)
g.DrawLine(New Pen(titlebarColor7), rect.X, rect.Y + 6, rect.X + rect.Width, rect.Y + 6)
' Center the titlebar grip.
g.DrawImage(titlebarGrip, New Point(rect.X + (rect.Width / 2 - titlebarGrip.Width / 2), rect.Y + 1))
End Sub
' This method handles the RenderGrip event.
Protected Overrides Sub OnRenderGrip(e As ToolStripGripRenderEventArgs)
DrawTitleBar(e.Graphics, New Rectangle(0, 0, e.ToolStrip.Width, 7))
End Sub
' This method handles the RenderToolStripBorder event.
Protected Overrides Sub OnRenderToolStripBorder(e As ToolStripRenderEventArgs)
DrawTitleBar(e.Graphics, New Rectangle(0, 0, e.ToolStrip.Width, 7))
End Sub
' This method handles the RenderButtonBackground event.
Protected Overrides Sub OnRenderButtonBackground(e As ToolStripItemRenderEventArgs)
Dim g As Graphics = e.Graphics
Dim bounds As New Rectangle(Point.Empty, e.Item.Size)
Dim gradientBegin As Color = Color.FromArgb(203, 225, 252)
Dim gradientEnd As Color = Color.FromArgb(125, 165, 224)
Dim button As ToolStripButton = CType(e.Item, ToolStripButton)
If button.Pressed OrElse button.Checked Then
gradientBegin = Color.FromArgb(254, 128, 62)
gradientEnd = Color.FromArgb(255, 223, 154)
ElseIf button.Selected Then
gradientBegin = Color.FromArgb(255, 255, 222)
gradientEnd = Color.FromArgb(255, 203, 136)
End If
Dim b = New LinearGradientBrush(bounds, gradientBegin, gradientEnd, LinearGradientMode.Vertical)
Try
g.FillRectangle(b, bounds)
Finally
b.Dispose()
End Try
e.Graphics.DrawRectangle(SystemPens.ControlDarkDark, bounds)
g.DrawLine(SystemPens.ControlDarkDark, bounds.X, bounds.Y, bounds.Width - 1, bounds.Y)
g.DrawLine(SystemPens.ControlDarkDark, bounds.X, bounds.Y, bounds.X, bounds.Height - 1)
Dim toolStrip As ToolStrip = button.Owner
Dim nextItem As ToolStripButton = CType(button.Owner.GetItemAt(button.Bounds.X, button.Bounds.Bottom + 1), ToolStripButton)
If nextItem Is Nothing Then
g.DrawLine(SystemPens.ControlDarkDark, bounds.X, bounds.Height - 1, bounds.X + bounds.Width - 1, bounds.Height - 1)
End If
End Sub
End Class
Poznámky
ToolStripProfessionalRenderer vytvoří pera a štětce založené na nahraditelné tabulce barev s názvem ProfessionalColorTable.
Konstruktory
ToolStripProfessionalRenderer() |
Inicializuje novou instanci ToolStripProfessionalRenderer třídy. |
ToolStripProfessionalRenderer(ProfessionalColorTable) |
Inicializuje novou instanci ToolStripProfessionalRenderer třídy. |
Vlastnosti
ColorTable |
Získá paletu barev použitou pro malování. |
RoundedEdges |
Získá nebo nastaví hodnotu označující, zda hrany ovládacích prvků mají zaoblené místo čtvercového nebo ostrého vzhledu. |
Metody
Událost
RenderArrow |
Nastane při vykreslení šipky na objektu ToolStripItem . (Zděděno od ToolStripRenderer) |
RenderButtonBackground |
Nastane při vykreslení pozadí objektu ToolStripButton . (Zděděno od ToolStripRenderer) |
RenderDropDownButtonBackground |
Nastane při vykreslení pozadí objektu ToolStripDropDownButton . (Zděděno od ToolStripRenderer) |
RenderGrip |
Nastane při vykreslení úchytu ToolStrip pro přesunutí. (Zděděno od ToolStripRenderer) |
RenderImageMargin |
Nakreslí okraj mezi obrázkem a jejím kontejnerem. (Zděděno od ToolStripRenderer) |
RenderItemBackground |
Nastane při vykreslení pozadí objektu ToolStripItem . (Zděděno od ToolStripRenderer) |
RenderItemCheck |
Nastane při vykreslení obrázku vybraného ToolStripItem objektu. (Zděděno od ToolStripRenderer) |
RenderItemImage |
Nastane při vykreslení obrázku ToolStripItem pro. (Zděděno od ToolStripRenderer) |
RenderItemText |
Nastane při vykreslení textu pro ToolStripItem . (Zděděno od ToolStripRenderer) |
RenderLabelBackground |
Nastane při vykreslení pozadí objektu ToolStripLabel . (Zděděno od ToolStripRenderer) |
RenderMenuItemBackground |
Nastane při vykreslení pozadí objektu ToolStripMenuItem . (Zděděno od ToolStripRenderer) |
RenderOverflowButtonBackground |
Nastane při vykreslení pozadí tlačítka přetečení. (Zděděno od ToolStripRenderer) |
RenderSeparator |
Nastane při vykreslení ToolStripSeparator . (Zděděno od ToolStripRenderer) |
RenderSplitButtonBackground |
Nastane při vykreslení pozadí objektu ToolStripSplitButton . (Zděděno od ToolStripRenderer) |
RenderStatusStripSizingGrip |
Nastane, když se změní styl zobrazení. (Zděděno od ToolStripRenderer) |
RenderToolStripBackground |
Nastane při vykreslení pozadí objektu ToolStrip . (Zděděno od ToolStripRenderer) |
RenderToolStripBorder |
Nastane při vykreslení ohraničení pro.ToolStrip (Zděděno od ToolStripRenderer) |
RenderToolStripContentPanelBackground |
Nakreslí pozadí objektu ToolStripContentPanel. (Zděděno od ToolStripRenderer) |
RenderToolStripPanelBackground |
Nakreslí pozadí objektu ToolStripPanel. (Zděděno od ToolStripRenderer) |
RenderToolStripStatusLabelBackground |
Nakreslí pozadí objektu ToolStripStatusLabel. (Zděděno od ToolStripRenderer) |