- ribbondemo0.4.zip
- RibbonDemo.exe
- System.Windows.Forms.Ribbon.dll
- ribbonsource0.4.zip
- System.Windows.Forms.Ribbon
- RibbonDemo
- BlackForm.cs
- BlackForm.Designer.cs
- BlackForm.resx
- MainForm.cs
- MainForm.Designer.cs
- MainForm.resx
- Program.cs
- Properties
- Resources
- addons32.png
- bold16.png
- borderbottom16.png
- casing16.png
- close32.png
- copy16.png
- copyformat16.png
- cut16.png
- eraseformat16.png
- exit16.png
- fill16.png
- find32.png
- fontcolor16.png
- fontsizedecrease16.png
- fontsizeincrease16.png
- goto16.png
- hilight16.png
- indentdecrease16.png
- indentdecrease161.png
- indentincrease16.png
- invisiblechars16.png
- italic16.png
- multilevellist16.png
- newdocument32.png
- open16.png
- open32.png
- options16.png
- orderedlist16.png
- pageblank16.png
- paragraphspacing16.png
- paste16.png
- paste32.png
- paste321.png
- pastelink16.png
- pastespecial16.png
- prepare32.png
- print32.png
- print321.png
- printpreview32.png
- printquick16.png
- printquick32.png
- publish32.png
- replace16.png
- save16.png
- save32.png
- saveas32.png
- saveas321.png
- select16.png
- send32.png
- sort16.png
- strikethru16.png
- style16.png
- stylechange32.png
- styleset16.png
- subindex16.png
- superindex16.png
- textaligncenter16.png
- textalignjustify16.png
- textalignleft16.png
- textalignright16.png
- themefont.png
- underline16.png
- undo16.png
- unorderedlist16.png
- word2003doc32.png
- worddocument32.png
- wordtemplate32.png
- RibbonDemo.csproj
- System.Windows.Forms.Ribbon.sln
- System.Windows.Forms.Ribbon.suo
- System.Windows.Forms.Ribbon
- ribbondemo_0.2.zip
- RibbonDemo.exe
- System.Windows.Forms.Ribbon.dll
- ribbonsource_0.3.zip
- bin
- RibbonDemo_0.3.zip
- RibbonDemo.exe
- System.Windows.Forms.Ribbon.dll
- RibbonDemo.zip
- RibbonDemo.exe
- System.Windows.Forms.Ribbon.dll
- ribbonsource_0.2.zip
|
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms.Design.Behavior;
using System.Drawing;
using System.Drawing.Drawing2D;
namespace System.Windows.Forms
{
public class RibbonTabGlyph
: Glyph
{
BehaviorService _behaviorService;
Ribbon _ribbon;
RibbonDesigner _componentDesigner;
Size size;
public RibbonTabGlyph(BehaviorService behaviorService, RibbonDesigner designer, Ribbon ribbon)
: base(new RibbonTabGlyphBehavior(designer, ribbon))
{
_behaviorService = behaviorService;
_componentDesigner = designer;
_ribbon = ribbon;
size = new Size(60, 16);
}
public override Rectangle Bounds
{
get
{
Point edge = _behaviorService.ControlToAdornerWindow(_ribbon);
Point tab = new Point(5,_ribbon.OrbBounds.Bottom + 5 );
//If has tabs
if (_ribbon.Tabs.Count > 0)
{
//Place glyph next to the last tab
RibbonTab t = _ribbon.Tabs[_ribbon.Tabs.Count - 1];
tab.X = t.Bounds.Right + 5;
tab.Y = t.Bounds.Top + 2;
}
return new Rectangle(
edge.X + tab.X,
edge.Y + tab.Y,
size.Width , size.Height);
}
}
public override Cursor GetHitTest(System.Drawing.Point p)
{
if (Bounds.Contains(p))
{
return Cursors.Hand;
}
return null;
}
public override void Paint(PaintEventArgs pe)
{
SmoothingMode smbuff = pe.Graphics.SmoothingMode;
pe.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
using (GraphicsPath p = RibbonProfessionalRenderer.RoundRectangle(Bounds, 2))
{
using (SolidBrush b = new SolidBrush(Color.FromArgb(50, Color.Blue)))
{
pe.Graphics.FillPath(b, p);
}
}
StringFormat sf = new StringFormat(); sf.Alignment = StringAlignment.Center; sf.LineAlignment = StringAlignment.Center;
pe.Graphics.DrawString("Add Tab", SystemFonts.DefaultFont, Brushes.White, Bounds, sf);
pe.Graphics.SmoothingMode = smbuff;
}
}
public class RibbonTabGlyphBehavior
: Behavior
{
Ribbon _ribbon;
RibbonDesigner _designer;
public RibbonTabGlyphBehavior(RibbonDesigner designer, Ribbon ribbon)
{
_designer = designer;
_ribbon = ribbon;
}
public override bool OnMouseUp(Glyph g, MouseButtons button)
{
_designer.AddTabVerb(this, EventArgs.Empty);
return base.OnMouseUp(g, button);
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
- I've been programming Windows and Web apps since 1997.
- My greatest concern nowadays is product, user interface, and usability.
- TypeScript / React expert
@geeksplainer