本文整理汇总了C#中Surface.DrawRectangle方法的典型用法代码示例。如果您正苦于以下问题:C# Surface.DrawRectangle方法的具体用法?C# Surface.DrawRectangle怎么用?C# Surface.DrawRectangle使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Surface
的用法示例。
在下文中一共展示了Surface.DrawRectangle方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ComposeContent
/// <summary>
/// Composes the element content.
/// </summary>
/// <param name="surface">The composition surface.</param>
protected override void ComposeContent(Surface surface)
{
var color = this.BorderColor;
var border = this.BorderThickness;
var outer = this.Bounds;
var inner = outer - border;
surface.DrawRectangle(this.Background, null, inner);
surface.DrawRectangle(color, null, new RectangleF(outer.Left, outer.Top, outer.Width, border.Top));
surface.DrawRectangle(color, null, new RectangleF(outer.Left, outer.Bottom - border.Bottom, outer.Width, border.Bottom));
surface.DrawRectangle(color, null, new RectangleF(outer.Left, outer.Top + border.Top, border.Left, outer.Height - border.Top - border.Bottom));
surface.DrawRectangle(color, null, new RectangleF(outer.Right - border.Right, outer.Top + border.Top, border.Right, outer.Height - border.Top - border.Bottom));
if (this.ClipToBounds)
{
surface.PushClip(inner);
try
{
base.ComposeContent(surface);
}
finally
{
surface.PopClip();
}
}
else
{
base.ComposeContent(surface);
}
}
示例2: ComposeContent
/// <summary>
/// Composes the element content.
/// </summary>
/// <param name="surface">The composition surface.</param>
protected override void ComposeContent(Surface surface)
{
base.ComposeContent(surface);
var bounds = this.Bounds;
var color = this.ScrollBarColor;
var width = Math.Max(1, this.ScrollBarWidth);
if (this.ContentWidth > bounds.Width && this.HorizontalScroll == Scroll.Enabled)
{
var s = bounds.Width / this.ContentWidth;
surface.DrawRectangle(color, null, new RectangleF(bounds.X + this.HorizontalScrollPosition * s, bounds.Bottom - width, bounds.Width * s - width, width));
}
if (this.ContentHeight > bounds.Height && this.VerticalScroll == Scroll.Enabled)
{
var s = bounds.Height / this.ContentHeight;
surface.DrawRectangle(color, null, new RectangleF(bounds.Right - width, bounds.Y + this.VerticalScrollPosition * s, width, bounds.Height * s));
}
}
示例3: ComposeContent
/// <summary>
/// Composes the element content.
/// </summary>
/// <param name="surface">The composition surface.</param>
protected override void ComposeContent(Surface surface)
{
var font = this.Font;
var text = this.Text;
var color = this.Foreground;
if (text != null && font != null && color.A > 0)
{
if (font.IsInitialized())
{
var bounds = this.Bounds;
var lineSpacing = this.LineSpacing;
var charSpacing = this.LetterSpacing;
var baselineOffset = this.BaselineOffset;
var baseX = bounds.X;
var baseY = bounds.Y;
var x = 0f;
var y = 0f;
switch (this.VerticalAlignment)
{
case VerticalAlignment.Top:
y = font.Top - font.LineHeight;
break;
case VerticalAlignment.Bottom:
if (float.IsNaN(baselineOffset))
{
y = font.Bottom;
}
else
{
y = font.Baseline - baselineOffset;
}
break;
}
for (var i = 0; i < text.Length; i++)
{
var character = text[i];
if (character < 32)
{
switch (character)
{
case '\n':
x = 0f;
y += font.LineHeight + lineSpacing;
break;
}
}
else
{
if (x > 0)
{
x += charSpacing;
}
var glyph = font.GetGlyph(character);
var width = glyph.Width;
surface.DrawRectangle(color, glyph, new RectangleF(baseX + x, baseY + y, glyph.Width, glyph.Height));
if (i + 1 < text.Length)
{
width += glyph.GetKerning(text[i + 1]);
}
x += width;
}
}
}
else
{
this.InvalidateWhenReady(font);
}
}
}