本文整理汇总了C#中DrawContext类的典型用法代码示例。如果您正苦于以下问题:C# DrawContext类的具体用法?C# DrawContext怎么用?C# DrawContext使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
DrawContext类属于命名空间,在下文中一共展示了DrawContext类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Draw
public override void Draw(TreeNodeAdv node, DrawContext context)
{
if (context.CurrentEditorOwner == this && node == Parent.CurrentNode)
return;
var label = GetLabel(node);
var textBounds = GetBounds(node, context);
var focusRect = new Rectangle(textBounds.X, context.Bounds.Y,
textBounds.Width - 1, context.Bounds.Height - 1);
Brush backgroundBrush;
Color textColor;
Font font;
CreateBrushes(node, context, label, out backgroundBrush, out textColor, out font, ref label);
//if (backgroundBrush != null)
// context.Graphics.FillRectangle(backgroundBrush, focusRect);
var focusPen = new Pen(SystemColors.Highlight);
focusPen.Color = context.DrawSelection == DrawSelectionMode.None ?
SystemColors.ControlText : SystemColors.InactiveCaption;
//focusPen.Color = SystemColors.Highlight;
//context.Graphics.DrawRectangle(focusPen, focusRect);
if (UseCompatibleTextRendering)
TextRenderer.DrawText(context.Graphics, label, font, textBounds, textColor, _formatFlags);
else
context.Graphics.DrawString(label, font, GetBrush(textColor), textBounds, _format);
}
示例2: Draw
public override void Draw(TreeNodeAdv node, DrawContext context)
{
if (node.CanExpand)
{
Rectangle r = context.Bounds;
int dy = (int)Math.Round((float)(r.Height - ImageSize) / 2);
if (_useVisualStyles)
{
VisualStyleRenderer renderer;
if (node.IsExpanded)
renderer = _openedRenderer;
else
renderer = _closedRenderer;
renderer.DrawBackground(context.Graphics, new Rectangle(r.X, r.Y + dy, ImageSize, ImageSize));
}
else
{
Image img;
if (node.IsExpanded)
img = this.Minus;
else
img = this.Plus;
context.Graphics.DrawImageUnscaled(img, new Point(r.X, r.Y + dy));
}
}
}
示例3: CommentHitTestError
public void CommentHitTestError()
{
string test="<p><!--OddPage--></p>";
XmlDocument doc=new XmlDocument();
doc.LoadXml(test);
Stylesheet s=new Stylesheet();
s.BindStyles(doc.NameTable);
Rectangle rc=new Rectangle(0, 0, 500, int.MaxValue);
using ( IGraphics gr=new DummyGraphics() )
{
DrawContext ctx=new DrawContext(gr, Point.Empty, rc, rc, null, new DocumentType(), null);
LayoutEngine layoutEngine=new LayoutEngine(s);
layoutEngine.Reflow(ctx, doc.DocumentElement);
Console.WriteLine("Bounds {0}", layoutEngine.BoundingRect);
for (int x=0; x< layoutEngine.BoundingRect.Width; x+=10)
{
HitTestInfo hti=layoutEngine.GetHitTestInfo(gr, new Point(x,8));
SelectionPoint sp=hti.SelectionPoint;
Console.WriteLine("Hit test at {0} = {1}", x, sp);
}
}
}
示例4: Draw
public override void Draw(TreeNodeAdv node, DrawContext context)
{
Rectangle bounds = GetBounds(node, context);
CheckState state = GetCheckState(node);
if (Application.RenderWithVisualStyles)
{
VisualStyleRenderer renderer;
if (state == CheckState.Indeterminate)
renderer = new VisualStyleRenderer(VisualStyleElement.Button.CheckBox.MixedNormal);
else if (state == CheckState.Checked)
renderer = new VisualStyleRenderer(VisualStyleElement.Button.CheckBox.CheckedNormal);
else
renderer = new VisualStyleRenderer(VisualStyleElement.Button.CheckBox.UncheckedNormal);
renderer.DrawBackground(context.Graphics, new Rectangle(bounds.X, bounds.Y, ImageSize, ImageSize));
}
else
{
Image img;
if (state == CheckState.Indeterminate)
img = _unknown;
else if (state == CheckState.Checked)
img = _check;
else
img = _uncheck;
context.Graphics.DrawImage(img, bounds.Location);
}
}
示例5: Draw
public override void Draw(TreeNodeAdv node, DrawContext context)
{
if (node.CanExpand)
{
Rectangle r = context.Bounds;
int dy = (int)Math.Round((float)(r.Height - ImageSize) / 2);
if (Application.RenderWithVisualStyles)
{
VisualStyleRenderer renderer;
if (node.IsExpanded)
renderer = new VisualStyleRenderer(VisualStyleElement.TreeView.Glyph.Opened);
else
renderer = new VisualStyleRenderer(VisualStyleElement.TreeView.Glyph.Closed);
renderer.DrawBackground(context.Graphics, new Rectangle(r.X, r.Y + dy, ImageSize, ImageSize));
}
else
{
Image img;
if (node.IsExpanded)
img = _minus;
else
img = _plus;
context.Graphics.DrawImageUnscaled(img, new Point(r.X, r.Y + dy));
}
}
}
示例6: Draw
public override void Draw(DrawContext context, PxRect pxrect, PxRect? pxsampleRect = null, DrawColor? color = null)
{
context.Set();
Rectangle rect = pxrect.Rectangle();
Rectangle sampleRect;
if (pxsampleRect == null) sampleRect = texture.Bounds;
else sampleRect = pxsampleRect.Value.Rectangle();
// top left
DrawBatch.Draw(texture, rect.MarginTop(fh).MarginLeft(fw).PxRect(), sampleRect.MarginTop(fh).MarginLeft(fw).PxRect(), color);
// top
DrawBatch.Draw(texture, rect.MarginTop(fh).Inflated(-fw, 0).PxRect(), sampleRect.MarginTop(fh).Inflated(-fw, 0).PxRect(), color);
// top right
DrawBatch.Draw(texture, rect.MarginTop(fh).MarginRight(fw).PxRect(), sampleRect.MarginTop(fh).MarginRight(fw).PxRect(), color);
// left
DrawBatch.Draw(texture, rect.Inflated(0, -fh).MarginLeft(fw).PxRect(), sampleRect.Inflated(0, -fh).MarginLeft(fw).PxRect(), color);
// center
DrawBatch.Draw(texture, rect.Inflated(-fw, -fh).PxRect(), sampleRect.Inflated(-fw, -fh).PxRect(), color);
// right
DrawBatch.Draw(texture, rect.Inflated(0, -fh).MarginRight(fw).PxRect(), sampleRect.Inflated(0, -fh).MarginRight(fw).PxRect(), color);
// bottom left
DrawBatch.Draw(texture, rect.MarginBottom(fh).MarginLeft(fw).PxRect(), sampleRect.MarginBottom(fh).MarginLeft(fw).PxRect(), color);
// bottom
DrawBatch.Draw(texture, rect.MarginBottom(fh).Inflated(-fw, 0).PxRect(), sampleRect.MarginBottom(fh).Inflated(-fw, 0).PxRect(), color);
// bottom right
DrawBatch.Draw(texture, rect.MarginBottom(fh).MarginRight(fw).PxRect(), sampleRect.MarginBottom(fh).MarginRight(fw).PxRect(), color);
}
示例7: DrawEventArgs
public DrawEventArgs(TreeNodeAdv node, EditableControl control, DrawContext context, string text)
: base(node)
{
_control = control;
_context = context;
_text = text;
}
示例8: MeasureSize
public override Size MeasureSize(TreeNodeAdv node, DrawContext context)
{
if (GetValue(node).ToString() == "")
return new Size(0, 0);
else
return new Size(_normal.Width,_normal.Height);
}
示例9: Draw
public override void Draw(TreeNodeAdv node, DrawContext context)
{
Rectangle r = context.Bounds;
int dy = (int)Math.Round((float)(r.Height - ImageSize) / 2);
CheckState state = GetCheckState(node);
if (Application.RenderWithVisualStyles)
{
VisualStyleRenderer renderer;
if (state == CheckState.Indeterminate)
renderer = new VisualStyleRenderer(VisualStyleElement.Button.CheckBox.MixedNormal);
else if (state == CheckState.Checked)
renderer = new VisualStyleRenderer(VisualStyleElement.Button.CheckBox.CheckedNormal);
else
renderer = new VisualStyleRenderer(VisualStyleElement.Button.CheckBox.UncheckedNormal);
renderer.DrawBackground(context.Graphics, new Rectangle(r.X, r.Y + dy, ImageSize, ImageSize));
}
else
{
Image img;
if (state == CheckState.Indeterminate)
img = _unknown;
else if (state == CheckState.Checked)
img = _check;
else
img = _uncheck;
context.Graphics.DrawImage(img, new Point(r.X, r.Y + dy));
//ControlPaint.DrawCheckBox(context.Graphics, r, state2);
}
}
示例10: MeasureSize
public override Size MeasureSize(TreeNodeAdv node, DrawContext context, int rightBoundLastControl)
{
Image image=GetIcon(node);
if(image!=null)
return image.Size;
else
return Size.Empty;
}
示例11: MeasureSize
public override Size MeasureSize(TreeNodeAdv node, DrawContext context)
{
Image image = GetIcon(node);
if (image != null)
return image.Size;
return Size.Empty;
}
示例12: Draw
public override void Draw(TreeNodeAdv node, DrawContext context)
{
Image image = GetIcon(node);
if (image != null)
{
Rectangle r = GetBounds(node, context);
context.Graphics.DrawImage(image, r.Location);
}
}
示例13: Draw
public override void Draw(TreeNodeAdv node, DrawContext context)
{
Image image = GetIcon(node);
if (image != null)
{
Point point = new Point(context.Bounds.X,
context.Bounds.Y + (context.Bounds.Height - image.Height) / 2);
context.Graphics.DrawImage(image, point);
}
}
示例14: Draw
public override void Draw(TreeNodeAdv node, DrawContext context)
{
Image image=GetIcon(node);
if(image!=null)
{
Rectangle r=GetBounds(node, context);
if(image.Width>0&&image.Height>0)
{
switch(_scaleMode)
{
case ImageScaleMode.Fit:
context.Graphics.DrawImage(image, r);
break;
case ImageScaleMode.ScaleDown:
{
float factor=Math.Min((float)r.Width/(float)image.Width, (float)r.Height/(float)image.Height);
if(factor<1)
context.Graphics.DrawImage(image, r.X, r.Y, image.Width*factor, image.Height*factor);
else
context.Graphics.DrawImage(image, r.X, r.Y, image.Width, image.Height);
} break;
case ImageScaleMode.ScaleUp:
{
float factor=Math.Max((float)r.Width/(float)image.Width, (float)r.Height/(float)image.Height);
if(factor>1)
context.Graphics.DrawImage(image, r.X, r.Y, image.Width*factor, image.Height*factor);
else
context.Graphics.DrawImage(image, r.X, r.Y, image.Width, image.Height);
} break;
case ImageScaleMode.AlwaysScale:
{
float fx=(float)r.Width/(float)image.Width;
float fy=(float)r.Height/(float)image.Height;
if(Math.Min(fx, fy)<1)
{ //scale down
float factor=Math.Min(fx, fy);
context.Graphics.DrawImage(image, r.X, r.Y, image.Width*factor, image.Height*factor);
}
else if(Math.Max(fx, fy)>1)
{
float factor=Math.Max(fx, fy);
context.Graphics.DrawImage(image, r.X, r.Y, image.Width*factor, image.Height*factor);
}
else
context.Graphics.DrawImage(image, r.X, r.Y, image.Width, image.Height);
} break;
case ImageScaleMode.Clip:
default:
context.Graphics.DrawImage(image, r.X, r.Y, image.Width, image.Height);
break;
}
}
}
}
示例15: Draw
public override void Draw(TreeNodeAdv node, DrawContext context)
{
Image image = GetIcon(node);
if (image != null)
{
Rectangle r = GetBounds(node, context);
// ml: center icon vertically.
r.Y += (context.Bounds.Height - r.Height) / 2;
context.Graphics.DrawImage(image, r.Location);
}
}