本文整理汇总了C#中Cairo.SetDash方法的典型用法代码示例。如果您正苦于以下问题:C# Cairo.SetDash方法的具体用法?C# Cairo.SetDash怎么用?C# Cairo.SetDash使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Cairo
的用法示例。
在下文中一共展示了Cairo.SetDash方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DrawFrame
protected override void DrawFrame (Cairo.Context context, double lineWidth, Cairo.Color lineColor, Cairo.Color fillColor)
{
// base.DrawFrame (context, lineWidth, lineColor, fillColor);
rect = DisplayBox;
rect.OffsetDot5();
// HERZUM SPRINT 1.2
// CairoFigures.CurvedRectangle(context, rect, 30);
CairoFigures.AngleFrame(context, rect, 0,0,0,0);
// END HERZUM SPRINT 1.2
Cairo.Color fillColorOrigin;
fillColorOrigin = fillColor;
lineWidth = 1;
fillColor = new Cairo.Color (1.0, 1.0, 1.0, 1.0);
context.Color = fillColor;
context.FillPreserve();
context.Color = lineColor;
context.LineWidth = lineWidth;
double[] dash = {2, 0, 2};
context.SetDash (dash, 0);
context.Stroke();
rect2 = DisplayBox;
rect2.Width = DisplayBox.Width;
rect2.Height = 30;
rect2.OffsetDot5();
CairoFigures.CurvedRectangle(context, rect2, 30);
fillColor = fillColorOrigin;
context.Color = fillColor;
context.FillPreserve();
context.Color = lineColor;
context.LineWidth = lineWidth;
context.Stroke();
// HERZUM SPRINT 2.1
// m_applicationContext.MainWindow.ExperimentCanvasPad.LoopNodeControlCurrent = this;
// END HERZUM SPRINT 2.1
// HERZUM SPRINT 5.0: TLAB-235
// DrawScope ();
DrawScope ("Enter","Exit");
// END HERZUM SPRINT 5.0: TLAB-235
}
示例2: Draw
public override void Draw (MonoTextEditor editor, Cairo.Context cr, LineMetrics layout, int startOffset, int endOffset)
{
if (DebuggingService.IsDebugging)
return;
int markerStart = Segment.Offset;
int markerEnd = Segment.EndOffset;
if (markerEnd < startOffset || markerStart > endOffset)
return;
double drawFrom;
double drawTo;
double y = layout.LineYRenderStartPosition;
double startXPos = layout.TextRenderStartPosition;
double endXPos = layout.TextRenderEndPosition;
if (markerStart < startOffset && endOffset < markerEnd) {
drawTo = endXPos;
var line = editor.GetLineByOffset (startOffset);
int offset = line.GetIndentation (editor.Document).Length;
drawFrom = startXPos + (layout.Layout.Layout.IndexToPos (offset).X / Pango.Scale.PangoScale);
} else {
int start;
if (startOffset < markerStart) {
start = markerStart;
} else {
var line = editor.GetLineByOffset (startOffset);
int offset = line.GetIndentation (editor.Document).Length;
start = startOffset + offset;
}
int end = endOffset < markerEnd ? endOffset : markerEnd;
int x_pos;
x_pos = layout.Layout.Layout.IndexToPos (start - startOffset).X;
drawFrom = startXPos + (int)(x_pos / Pango.Scale.PangoScale);
x_pos = layout.Layout.Layout.IndexToPos (end - startOffset).X;
drawTo = startXPos + (int)(x_pos / Pango.Scale.PangoScale);
}
drawFrom = Math.Max (drawFrom, editor.TextViewMargin.XOffset);
drawTo = Math.Max (drawTo, editor.TextViewMargin.XOffset);
if (drawFrom >= drawTo)
return;
double height = editor.LineHeight / 5;
cr.SetSourceColor (color);
if (effect == MonoDevelop.Ide.Editor.TextSegmentMarkerEffect.WavedLine) {
Pango.CairoHelper.ShowErrorUnderline (cr, drawFrom, y + editor.LineHeight - height, drawTo - drawFrom, height);
} else if (effect == MonoDevelop.Ide.Editor.TextSegmentMarkerEffect.DottedLine) {
cr.Save ();
cr.LineWidth = 1;
cr.MoveTo (drawFrom + 1, y + editor.LineHeight - 1 + 0.5);
cr.RelLineTo (Math.Min (drawTo - drawFrom, 4 * 3), 0);
cr.SetDash (new double[] { 2, 2 }, 0);
cr.Stroke ();
cr.Restore ();
} else {
cr.MoveTo (drawFrom, y + editor.LineHeight - 1);
cr.LineTo (drawTo, y + editor.LineHeight - 1);
cr.Stroke ();
}
}
示例3: DrawIndent
void DrawIndent (Cairo.Context cr, LayoutWrapper layout, DocumentLine line, double xPos, double y)
{
if (!textEditor.Options.DrawIndentationMarkers)
return;
if (line.Length == 0) {
var nextLine = line.NextLine;
while (nextLine != null && nextLine.Length == 0)
nextLine = nextLine.NextLine;
if (nextLine != null)
layout = GetLayout (nextLine);
}
if (layout.IndentSize == 0)
return;
cr.Save ();
var dotted = new [] { textEditor.Options.Zoom };
cr.SetDash (dotted, (int)y + textEditor.VAdjustment.Value);
var top = y;
var bottom = y + LineHeight;
if (Caret.Line == line.LineNumber && textEditor.Options.HighlightCaretLine) {
top += textEditor.Options.Zoom;
bottom -= textEditor.Options.Zoom;
}
for (int i = 0; i < layout.IndentSize; i += textEditor.Options.IndentationSize) {
var x = System.Math.Floor (xPos + i * charWidth);
cr.MoveTo (x + 0.5, top);
cr.LineTo (x + 0.5, bottom);
cr.Color = ColorStyle.IndentationGuide.Color;
cr.Stroke ();
}
cr.Restore ();
}
示例4: Draw
public void Draw(Cairo.Context g, double scale, bool fillSelection)
{
g.Save ();
g.Translate (0.5, 0.5);
g.Scale (scale, scale);
g.AppendPath (selection_path);
if (fillSelection)
{
g.Color = new Cairo.Color (0.7, 0.8, 0.9, 0.2);
g.FillRule = Cairo.FillRule.EvenOdd;
g.FillPreserve ();
}
g.LineWidth = 1 / scale;
// Draw a white line first so it shows up on dark backgrounds
g.Color = new Cairo.Color (1, 1, 1);
g.StrokePreserve ();
// Draw a black dashed line over the white line
g.SetDash (new double[] { 2 / scale, 4 / scale }, 0);
g.Color = new Cairo.Color (0, 0, 0);
g.Stroke ();
g.Restore ();
}
示例5: DrawSelectionBox
public static void DrawSelectionBox(Cairo.Context cr, double x, double y, double width, double height)
{
double[] dashes = {10.0, /* ink */
10.0, /* skip */
10.0, /* ink */
10.0 /* skip*/
};
cr.Save ();
cr.Color = new Cairo.Color (0.9, 0.9, 0.9, 1);
cr.SetDash (dashes, 0);
cr.Rectangle (x, y, width, height);
cr.Stroke ();
cr.Restore ();
}
示例6: Draw
public override void Draw (TextEditor editor, Cairo.Context cr, Pango.Layout layout, bool selected, int startOffset, int endOffset, double y, double startXPos, double endXPos)
{
if (Debugger.DebuggingService.IsDebugging)
return;
int markerStart = Segment.Offset;
int markerEnd = Segment.EndOffset;
if (markerEnd < startOffset || markerStart > endOffset)
return;
bool drawOverlay = result.InspectionMark == IssueMarker.GrayOut;
if (drawOverlay && editor.IsSomethingSelected) {
var selectionRange = editor.SelectionRange;
if (selectionRange.Contains (markerStart) && selectionRange.Contains (markerEnd))
return;
if (selectionRange.Contains (markerEnd))
markerEnd = selectionRange.Offset;
if (selectionRange.Contains (markerStart))
markerStart = selectionRange.EndOffset;
if (markerEnd <= markerStart)
return;
}
double drawFrom;
double drawTo;
if (markerStart < startOffset && endOffset < markerEnd) {
drawTo = endXPos;
var line = editor.GetLineByOffset (startOffset);
int offset = line.GetIndentation (editor.Document).Length;
drawFrom = startXPos + (layout.IndexToPos (offset).X / Pango.Scale.PangoScale);
} else {
int start;
if (startOffset < markerStart) {
start = markerStart;
} else {
var line = editor.GetLineByOffset (startOffset);
int offset = line.GetIndentation (editor.Document).Length;
start = startOffset + offset;
}
int end = endOffset < markerEnd ? endOffset : markerEnd;
int x_pos;
x_pos = layout.IndexToPos (start - startOffset).X;
drawFrom = startXPos + (int)(x_pos / Pango.Scale.PangoScale);
x_pos = layout.IndexToPos (end - startOffset).X;
drawTo = startXPos + (int)(x_pos / Pango.Scale.PangoScale);
}
drawFrom = System.Math.Max (drawFrom, editor.TextViewMargin.XOffset);
drawTo = System.Math.Max (drawTo, editor.TextViewMargin.XOffset);
if (drawFrom >= drawTo)
return;
double height = editor.LineHeight / 5;
cr.SetSourceColor (GetColor (editor, Result));
if (drawOverlay) {
cr.Rectangle (drawFrom, y, drawTo - drawFrom, editor.LineHeight);
var color = editor.ColorStyle.PlainText.Background;
color.A = 0.6;
cr.SetSourceColor (color);
cr.Fill ();
} else if (result.InspectionMark == IssueMarker.WavedLine) {
Pango.CairoHelper.ShowErrorUnderline (cr, drawFrom, y + editor.LineHeight - height, drawTo - drawFrom, height);
} else if (result.InspectionMark == IssueMarker.DottedLine) {
cr.Save ();
cr.LineWidth = 1;
cr.MoveTo (drawFrom + 1, y + editor.LineHeight - 1 + 0.5);
cr.RelLineTo (System.Math.Min (drawTo - drawFrom, 4 * 3), 0);
cr.SetDash (new double[] { 2, 2 }, 0);
cr.Stroke ();
cr.Restore ();
} else {
cr.MoveTo (drawFrom, y + editor.LineHeight - 1);
cr.LineTo (drawTo, y + editor.LineHeight - 1);
cr.Stroke ();
}
}
示例7: DrawLine
private void DrawLine(Cairo.Color c, BorderStyleEnum bs, float w, Cairo.Context g, double x, double y, double x2, double y2)
{
if (bs == BorderStyleEnum.None//|| c.IsEmpty
|| w <= 0) // nothing to draw
return;
g.Save();
// Pen p = null;
// p = new Pen(c, w);
g.Color = c;
g.LineWidth = w;
switch (bs)
{
case BorderStyleEnum.Dashed:
// p.DashStyle = DashStyle.Dash;
g.SetDash(new double[] { 2, 1 }, 0.0);
break;
case BorderStyleEnum.Dotted:
// p.DashStyle = DashStyle.Dot;
g.SetDash(new double[] { 1 }, 0.0);
break;
case BorderStyleEnum.Double:
case BorderStyleEnum.Groove:
case BorderStyleEnum.Inset:
case BorderStyleEnum.Solid:
case BorderStyleEnum.Outset:
case BorderStyleEnum.Ridge:
case BorderStyleEnum.WindowInset:
default:
g.SetDash(new double[] { }, 0.0);
break;
}
// g.DrawLine(p, x, y, x2, y2);
g.MoveTo(x, y);
g.LineTo(x2, y2);
g.Stroke();
g.Restore();
}
示例8: DrawFrame
protected override void DrawFrame (Cairo.Context context, double lineWidth, Cairo.Color lineColor, Cairo.Color fillColor)
{
rect = DisplayBox;
rect.OffsetDot5();
CairoFigures.AngleFrame(context, rect, 0, 0, 0, 0);
Cairo.Color fillColorOrigin;
fillColorOrigin = fillColor;
lineWidth = 1;
fillColor = new Cairo.Color (1.0, 1.0, 1.0, 1.0);
context.Color = fillColor;
context.FillPreserve();
context.Color = lineColor;
context.LineWidth = lineWidth;
double[] dash = {2, 0, 2};
context.SetDash (dash, 0);
context.Stroke();
rect2 = DisplayBox;
rect2.Width = DisplayBox.Width;
rect2.Height = 30;
rect2.OffsetDot5();
CairoFigures.AngleFrame(context, rect2, 0, 0, 0, 0);
fillColor = fillColorOrigin;
context.Color = fillColor;
context.FillPreserve();
context.Color = lineColor;
context.LineWidth = lineWidth;
context.Stroke();
// HERZUM SPRINT 1.1 LOOP
DrawScope ();
// END HERZUM SPRINT 1.1 LOOP
}
示例9: Draw
public override void Draw(Cairo.Context cr)
{
int dir = X1 > X0 ? 1 : -1;
cr.Save();
cr.SetFontSize(8);
if(arrow_kind == ArrowKind.Return)
{
double[] returnDash = new double[]{ 3.0, 3.0 };
cr.SetDash(returnDash, 0);
}
cr.MoveTo(X0, Y0);
cr.LineTo(X1, Y1);
cr.Stroke();
cr.MoveTo(X1 - dir*7, Y1 - 3);
cr.LineTo(X1, Y1);
cr.LineTo(X1 - dir*7, Y1 + 3);
if(arrow_kind == ArrowKind.Async)
{
cr.Stroke();
}
else
{
cr.MoveTo(X1 - dir*7, Y1 - 3);
cr.Fill();
}
if((text != null) && !text.Equals(""))
{
if(dir > 0)
{
cr.MoveTo(XText + 5, Y0 - 5);
cr.ShowText(text);
}
else
{
TextExtents te = cr.TextExtents(text);
cr.MoveTo(XText - 5 - te.Width, Y0 - 5);
cr.ShowText(text);
}
}
cr.Restore();
}
示例10: onDraw
protected override void onDraw(Cairo.Context gr)
{
base.onDraw (gr);
if (values.Count == 0)
return;
Rectangle r = ClientRectangle;
int i = values.Count -1;
double ptrX = (double)r.Right;
double scaleY = (double)r.Height / (Maximum - Minimum);
double stepX = (double)r.Width / (double)(nbValues-1);
gr.LineWidth = 1.0;
gr.SetDash (new double[]{ 1.0 },0.0);
LowThresholdFill.SetAsSource (gr);
gr.MoveTo (r.Left, r.Bottom - LowThreshold * scaleY);
gr.LineTo (r.Right, r.Bottom - LowThreshold * scaleY);
// gr.Rectangle (r.Left, r.Bottom - LowThreshold * scaleY, r.Width, LowThreshold * scaleY);
gr.Stroke();
HighThresholdFill.SetAsSource (gr);
gr.MoveTo (r.Left, (Maximum - HighThreshold) * scaleY);
gr.LineTo (r.Right, (Maximum - HighThreshold) * scaleY);
// gr.Rectangle (r.Left, r.Top, r.Width, (Maximum - HighThreshold) * scaleY);
gr.Stroke();
gr.MoveTo (ptrX, values [i] * scaleY);
Foreground.SetAsSource (gr);
gr.SetDash (new double[]{ }, 0.0);
while (i >= 0) {
gr.LineTo (ptrX, r.Bottom - values [i] * scaleY);
ptrX -= stepX;
i--;
}
gr.Stroke ();
}