public override Size MeasureSize(Graphics g)//有待完善 { if (this.eOrientation == Orientation.Horizontal) { return(base.MeasureSize(g)); } // int iWidth = 0; int iHeight = 0; SizeF size; Rectangle rectangle; switch (this.eDisplayStyle) { case DisplayStyle.eText: size = g.MeasureString(this.Text, this.Font); iWidth = (int)(size.Height + 1); iHeight = (int)(size.Width + 1); break; case DisplayStyle.eImage: if (this.Image != null) { rectangle = this.ImageRectangle; iWidth += rectangle.Width; iHeight += rectangle.Height; } break; case DisplayStyle.eImageAndText: size = g.MeasureString(this.Text, this.Font); iWidth = (int)(size.Height + 1); iHeight = (int)(size.Width + 1); if (this.Image != null) { switch (this.ImageAlign) { case ContentAlignment.BottomLeft: case ContentAlignment.BottomRight: case ContentAlignment.TopLeft: case ContentAlignment.TopRight: rectangle = this.ImageRectangle; iWidth += rectangle.Width + this.ITSpace; iHeight += rectangle.Height; break; case ContentAlignment.BottomCenter: case ContentAlignment.TopCenter: iHeight += this.ImageRectangle.Height + this.ITSpace; break; case ContentAlignment.MiddleLeft: case ContentAlignment.MiddleRight: iWidth += this.ImageRectangle.Width + this.ITSpace; break; case ContentAlignment.MiddleCenter: rectangle = this.ImageRectangle; if (iWidth < rectangle.Width) { iWidth = rectangle.Width; } if (iHeight < rectangle.Height) { iHeight = rectangle.Height; } break; default: break; } } break; default: break; } iWidth += this.Padding.Left + this.Padding.Right; iHeight += this.Padding.Top + this.Padding.Bottom; // IContextPopupPanelItem pContextPopupPanelItem = this.pBaseItemOwner as IContextPopupPanelItem; if (pContextPopupPanelItem != null) { switch (pContextPopupPanelItem.eContextPopupStyle) { case ContextPopupStyle.eSuper: iHeight = pContextPopupPanelItem.CheckRegionWidth > pContextPopupPanelItem.ImageRegionWidth ? pContextPopupPanelItem.CheckRegionWidth : pContextPopupPanelItem.ImageRegionWidth; iWidth += pContextPopupPanelItem.CheckRegionWidth + pContextPopupPanelItem.ImageRegionWidth; break; case ContextPopupStyle.eNormal: iHeight = pContextPopupPanelItem.ImageRegionWidth; iWidth += pContextPopupPanelItem.ImageRegionWidth; break; case ContextPopupStyle.eSimply: default: break; } iWidth += this.TextLeftSpace + this.TextRightSpace; } // if (iWidth < 16) { iWidth = 16; } if (iHeight < 16) { iHeight = 16; } // return(new Size(iWidth, iHeight)); }
protected override void OnDraw(PaintEventArgs e) { GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderBaseButton( new GISShare.Controls.WinForm.ObjectRenderEventArgs(e.Graphics, this, this.DisplayRectangle)); // IContextPopupPanelItem pContextPopupPanelItem = this.pBaseItemOwner as IContextPopupPanelItem; if (pContextPopupPanelItem != null) { switch (pContextPopupPanelItem.eContextPopupStyle) { case ContextPopupStyle.eSuper: case ContextPopupStyle.eNormal: GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderContextPopupItemButtonChecked( new GISShare.Controls.WinForm.CheckedRenderEventArgs(e.Graphics, this, this.Enabled, this.ForeColor, this.Checked, this.CheckRectangle)); break; default: break; } // //switch (this.eDisplayStyle) //{ // case DisplayStyle.eText: // GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonText( // new GISShare.Controls.WinForm.TextRenderEventArgs(e.Graphics, this, this.Enabled, this.Text, this.ForeColor, this.Font, this.TextRectangle)); // break; // default: // GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonImage( // new GISShare.Controls.WinForm.ImageRenderEventArgs(e.Graphics, this, this.Enabled, this.Image, this.ImageRectangle)); // GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonText( // new GISShare.Controls.WinForm.TextRenderEventArgs(e.Graphics, this, this.Enabled, this.Text, this.ForeColor, this.Font, this.TextRectangle)); // break; //} switch (this.eDisplayStyle) { case DisplayStyle.eImage: GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonImage( new GISShare.Controls.WinForm.ImageRenderEventArgs(e.Graphics, this, this.Enabled, this.Image, this.ImageRectangle)); break; case DisplayStyle.eText: StringFormat stringFormat = new StringFormat(); if (this.eOrientation == Orientation.Vertical) { stringFormat.FormatFlags = StringFormatFlags.DirectionVertical; } stringFormat.Trimming = StringTrimming.EllipsisCharacter; GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonText( new GISShare.Controls.WinForm.TextRenderEventArgs(e.Graphics, this, this.Enabled, true, this.Text, this.ForeColor, this.Font, this.TextRectangle, stringFormat)); break; case DisplayStyle.eImageAndText: StringFormat stringFormat2 = new StringFormat(); if (this.eOrientation == Orientation.Vertical) { stringFormat2.FormatFlags = StringFormatFlags.DirectionVertical; } stringFormat2.Trimming = StringTrimming.EllipsisCharacter; GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonImage( new GISShare.Controls.WinForm.ImageRenderEventArgs(e.Graphics, this, this.Enabled, this.Image, this.ImageRectangle)); GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonText( new GISShare.Controls.WinForm.TextRenderEventArgs(e.Graphics, this, this.Enabled, true, this.Text, this.ForeColor, this.Font, this.TextRectangle, stringFormat2)); break; default: break; } } else { switch (this.eDisplayStyle) { case DisplayStyle.eImage: GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonImage( new GISShare.Controls.WinForm.ImageRenderEventArgs(e.Graphics, this, this.Enabled, this.Image, this.ImageRectangle)); break; case DisplayStyle.eText: StringFormat stringFormat = new StringFormat(); if (this.eOrientation == Orientation.Vertical) { stringFormat.FormatFlags = StringFormatFlags.DirectionVertical; } stringFormat.Trimming = StringTrimming.EllipsisCharacter; GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonText( new GISShare.Controls.WinForm.TextRenderEventArgs(e.Graphics, this, this.Enabled, true, this.Text, this.ForeColor, this.Font, this.TextRectangle, stringFormat)); break; case DisplayStyle.eImageAndText: StringFormat stringFormat2 = new StringFormat(); if (this.eOrientation == Orientation.Vertical) { stringFormat2.FormatFlags = StringFormatFlags.DirectionVertical; } stringFormat2.Trimming = StringTrimming.EllipsisCharacter; GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonImage( new GISShare.Controls.WinForm.ImageRenderEventArgs(e.Graphics, this, this.Enabled, this.Image, this.ImageRectangle)); GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonText( new GISShare.Controls.WinForm.TextRenderEventArgs(e.Graphics, this, this.Enabled, true, this.Text, this.ForeColor, this.Font, this.TextRectangle, stringFormat2)); break; default: break; } } }
protected override void OnDraw(PaintEventArgs pevent) { GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderDropDownButton( new GISShare.Controls.WinForm.ObjectRenderEventArgs(pevent.Graphics, this, this.DisplayRectangle)); // IContextPopupPanelItem pContextPopupPanelItem = this.pBaseItemOwner as IContextPopupPanelItem; if (pContextPopupPanelItem != null) { switch (pContextPopupPanelItem.eContextPopupStyle) { case ContextPopupStyle.eSuper: case ContextPopupStyle.eNormal: GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderContextPopupItemButtonChecked( new GISShare.Controls.WinForm.CheckedRenderEventArgs(pevent.Graphics, this, this.Enabled, this.ForeColor, this.Checked, this.CheckRectangle)); break; default: break; } // //switch (this.eDisplayStyle) //{ // case DisplayStyle.eText: // GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonText( // new GISShare.Controls.WinForm.TextRenderEventArgs(pevent.Graphics, this, this.Enabled, this.Text, this.ForeColor, this.Font, this.TextRectangle)); // break; // default: // GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonImage( // new GISShare.Controls.WinForm.ImageRenderEventArgs(pevent.Graphics, this, this.Enabled, this.Image, this.ImageRectangle)); // GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonText( // new GISShare.Controls.WinForm.TextRenderEventArgs(pevent.Graphics, this, this.Enabled, this.Text, this.ForeColor, this.Font, this.TextRectangle)); // break; //} switch (this.eDisplayStyle) { case DisplayStyle.eImage: GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonImage( new GISShare.Controls.WinForm.ImageRenderEventArgs(pevent.Graphics, this, this.Enabled, this.Image, this.ImageRectangle)); break; case DisplayStyle.eText: GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonText( new GISShare.Controls.WinForm.TextRenderEventArgs(pevent.Graphics, this, this.Enabled, this.Text, this.ForeColor, this.Font, this.TextRectangle)); break; case DisplayStyle.eImageAndText: GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonImage( new GISShare.Controls.WinForm.ImageRenderEventArgs(pevent.Graphics, this, this.Enabled, this.Image, this.ImageRectangle)); GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonText( new GISShare.Controls.WinForm.TextRenderEventArgs(pevent.Graphics, this, this.Enabled, this.Text, this.ForeColor, this.Font, this.TextRectangle)); break; default: break; } // if (this.HaveVisibleBaseItem) { GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonArrow( new GISShare.Controls.WinForm.ArrowRenderEventArgs(pevent.Graphics, this, this.Enabled, ArrowStyle.eToRight, this.ForeColor, this.ArrowRectangle)); } } else { switch (this.eDisplayStyle) { case DisplayStyle.eImage: GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonImage( new GISShare.Controls.WinForm.ImageRenderEventArgs(pevent.Graphics, this, this.Enabled, this.Image, this.ImageRectangle)); break; case DisplayStyle.eText: GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonText( new GISShare.Controls.WinForm.TextRenderEventArgs(pevent.Graphics, this, this.Enabled, this.Text, this.ForeColor, this.Font, this.TextRectangle)); break; case DisplayStyle.eImageAndText: GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonImage( new GISShare.Controls.WinForm.ImageRenderEventArgs(pevent.Graphics, this, this.Enabled, this.Image, this.ImageRectangle)); GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonText( new GISShare.Controls.WinForm.TextRenderEventArgs(pevent.Graphics, this, this.Enabled, this.Text, this.ForeColor, this.Font, this.TextRectangle)); break; default: break; } // GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonArrow( new GISShare.Controls.WinForm.ArrowRenderEventArgs(pevent.Graphics, this, this.Enabled, this.eArrowStyle, this.ForeColor, this.ArrowRectangle)); //if (this.HaveVisibleBaseItem) //{ // GISShare.Controls.WinForm.WFNew.WFNewRenderer.WFNewRendererStrategy.OnRenderRibbonArrow( // new GISShare.Controls.WinForm.ArrowRenderEventArgs(pevent.Graphics, this, this.eArrowStyle, this.ForeColor, this.ArrowRectangle)); //} } }