public void GetGlyphs(ref GlyphCollection glyphs, System.Windows.Forms.Design.Behavior.Behavior standardBehavior) { if (this.ImmediateParent != null) { Rectangle glyphBounds = this.GetGlyphBounds(); ToolStripDesignerUtils.GetAdjustedBounds(this.ToolStripItem, ref glyphBounds); BehaviorService service = (BehaviorService)this.GetService(typeof(BehaviorService)); if (service.ControlRectInAdornerWindow((Control)this.ImmediateParent).Contains(glyphBounds.Left, glyphBounds.Top)) { if (this.ToolStripItem.IsOnDropDown) { ToolStrip currentParent = this.ToolStripItem.GetCurrentParent(); if (currentParent == null) { currentParent = this.ToolStripItem.Owner; } if ((currentParent != null) && currentParent.Visible) { glyphs.Add(new MiniLockedBorderGlyph(glyphBounds, SelectionBorderGlyphType.Top, standardBehavior, true)); glyphs.Add(new MiniLockedBorderGlyph(glyphBounds, SelectionBorderGlyphType.Bottom, standardBehavior, true)); glyphs.Add(new MiniLockedBorderGlyph(glyphBounds, SelectionBorderGlyphType.Left, standardBehavior, true)); glyphs.Add(new MiniLockedBorderGlyph(glyphBounds, SelectionBorderGlyphType.Right, standardBehavior, true)); } } else { glyphs.Add(new MiniLockedBorderGlyph(glyphBounds, SelectionBorderGlyphType.Top, standardBehavior, true)); glyphs.Add(new MiniLockedBorderGlyph(glyphBounds, SelectionBorderGlyphType.Bottom, standardBehavior, true)); glyphs.Add(new MiniLockedBorderGlyph(glyphBounds, SelectionBorderGlyphType.Left, standardBehavior, true)); glyphs.Add(new MiniLockedBorderGlyph(glyphBounds, SelectionBorderGlyphType.Right, standardBehavior, true)); } } } }
// Gets the painting rect for SelectionRects private static Rectangle GetPaintingBounds(IDesignerHost designerHost, ToolStripItem item) { Rectangle bounds = Rectangle.Empty; if (designerHost.GetDesigner(item) is ToolStripItemDesigner itemDesigner) { bounds = itemDesigner.GetGlyphBounds(); ToolStripDesignerUtils.GetAdjustedBounds(item, ref bounds); // So that the mouseOver glyph matches the selectionGlyph. bounds.Inflate(1, 1); bounds.Width--; bounds.Height--; } return(bounds); }
private static Rectangle GetPaintingBounds(IDesignerHost designerHost, ToolStripItem item) { Rectangle empty = Rectangle.Empty; ToolStripItemDesigner designer = designerHost.GetDesigner(item) as ToolStripItemDesigner; if (designer != null) { empty = designer.GetGlyphBounds(); ToolStripDesignerUtils.GetAdjustedBounds(item, ref empty); empty.Inflate(1, 1); empty.Width--; empty.Height--; } return(empty); }