Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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);
            }
        }
Ejemplo n.º 4
0
        /// <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);
            }
        }
Ejemplo n.º 5
0
        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);
            }
        }