public void ToolStripRenderer_DrawItemText_Invoke_CallsRenderItemText(ToolStripItem item, string text, Rectangle textRectangle, Color textColor, Font textFont, TextFormatFlags format) { using var image = new Bitmap(10, 10); using Graphics graphics = Graphics.FromImage(image); var eventArgs = new ToolStripItemTextRenderEventArgs(graphics, item, text, textRectangle, textColor, textFont, format); var renderer = new SubToolStripRenderer(); int callCount = 0; ToolStripItemTextRenderEventHandler handler = (sender, e) => { Assert.Same(renderer, sender); Assert.Same(eventArgs, e); callCount++; }; // Call with handler. renderer.RenderItemText += handler; renderer.DrawItemText(eventArgs); Assert.Equal(1, callCount); // Remove handler. renderer.RenderItemText -= handler; renderer.DrawItemText(eventArgs); Assert.Equal(1, callCount); }
/// <summary> /// Extends BeginInvoke so that when a state object is not needed, null does not need to be passed. /// <example> /// toolstripitemtextrendereventhandler.BeginInvoke(sender, e, callback); /// </example> /// </summary> public static IAsyncResult BeginInvoke(this ToolStripItemTextRenderEventHandler toolstripitemtextrendereventhandler, Object sender, ToolStripItemTextRenderEventArgs e, AsyncCallback callback) { if (toolstripitemtextrendereventhandler == null) { throw new ArgumentNullException("toolstripitemtextrendereventhandler"); } return(toolstripitemtextrendereventhandler.BeginInvoke(sender, e, callback, null)); }
public void DrawItemText(ToolStripItemTextRenderEventArgs e) { this.OnRenderItemText(e); ToolStripItemTextRenderEventHandler handler = this.Events[EventRenderItemText] as ToolStripItemTextRenderEventHandler; if (handler != null) { handler(this, e); } }
/// <include file='doc\ToolStripRenderer.uex' path='docs/doc[@for="ToolStripRenderer.DrawItemText"]/*' /> /// <devdoc> /// Draw text /// </devdoc> public void DrawItemText(ToolStripItemTextRenderEventArgs e) { OnRenderItemText(e); ToolStripItemTextRenderEventHandler eh = Events[EventRenderItemText] as ToolStripItemTextRenderEventHandler; if (eh != null) { eh(this, e); } }
protected virtual void OnRenderItemText(ToolStripItemTextRenderEventArgs e) { if (e.TextDirection == ToolStripTextDirection.Vertical90) { GraphicsState gs = e.Graphics.Save(); PointF p = new PointF(e.Graphics.Transform.OffsetX, e.Graphics.Transform.OffsetY); e.Graphics.ResetTransform(); e.Graphics.RotateTransform(90); RectangleF r = new RectangleF((e.Item.Height - e.TextRectangle.Height) / 2, (e.TextRectangle.Width + p.X) * -1 - 18, e.TextRectangle.Height, e.TextRectangle.Width); StringFormat sf = new StringFormat(); sf.Alignment = StringAlignment.Center; e.Graphics.DrawString(e.Text, e.TextFont, ThemeEngine.Current.ResPool.GetSolidBrush(e.TextColor), r, sf); e.Graphics.Restore(gs); } else if (e.TextDirection == ToolStripTextDirection.Vertical270) { GraphicsState gs = e.Graphics.Save(); PointF p = new PointF(e.Graphics.Transform.OffsetX, e.Graphics.Transform.OffsetY); e.Graphics.ResetTransform(); e.Graphics.RotateTransform(270); RectangleF r = new RectangleF(-e.TextRectangle.Height - (e.Item.Height - e.TextRectangle.Height) / 2, (e.TextRectangle.Width + p.X) + 4, e.TextRectangle.Height, e.TextRectangle.Width); StringFormat sf = new StringFormat(); sf.Alignment = StringAlignment.Center; e.Graphics.DrawString(e.Text, e.TextFont, ThemeEngine.Current.ResPool.GetSolidBrush(e.TextColor), r, sf); e.Graphics.Restore(gs); } else { TextRenderer.DrawText(e.Graphics, e.Text, e.TextFont, e.TextRectangle, e.TextColor, e.TextFormat); } ToolStripItemTextRenderEventHandler eh = (ToolStripItemTextRenderEventHandler)Events[RenderItemTextEvent]; if (eh != null) { eh(this, e); } }