protected override float?computeDistanceToActualBaseline(TextBaseline baseline) { if (this.child != null) { return(this.child.getDistanceToActualBaseline(baseline)); } return(base.computeDistanceToActualBaseline(baseline)); }
public PlaceholderSpan( TextBaseline baseline = TextBaseline.alphabetic, TextStyle style = null, PlaceholderAlignment alignment = PlaceholderAlignment.bottom ) : base(style: style) { this.baseline = baseline; this.alignment = alignment; }
public double computeDistanceToActualBaseline(TextBaseline baseline) { Debug.Assert(!this._needsLayout); switch (baseline) { case TextBaseline.alphabetic: return(this._paragraph.alphabeticBaseline); case TextBaseline.ideographic: return(this._paragraph.ideographicBaseline); } return(0.0); }
public float?defaultComputeDistanceToFirstActualBaseline(TextBaseline baseline) { var child = this.firstChild; while (child != null) { var childParentData = (ParentDataType)child.parentData; float?result = child.getDistanceToActualBaseline(baseline); if (result != null) { return(result.Value + childParentData.offset.dy); } child = childParentData.nextSibling; } return(null); }
private float GetFontBaseline(TextBaseline baseline, SKPaint paint) { switch (baseline) { case TextBaseline.Top: // TopTextBaseline return(paint.FontMetrics.Ascent); case TextBaseline.Middle: // MiddleTextBaseline return(-paint.FontMetrics.Descent + paint.TextSize / 2); case TextBaseline.Bottom: // BottomTextBaseline return(-paint.FontMetrics.Descent); default: break; } return(0); }
private float GetFontBaseline(TextBaseline baseline, SKPaint paint) { switch (baseline) { case TextBaseline.Top: // TopTextBaseline // https://chromium.googlesource.com/chromium/blink/+/master/Source/modules/canvas2d/CanvasRenderingContext2D.cpp#2056 // According to http://wiki.apache.org/xmlgraphics-fop/LineLayout/AlignmentHandling // "FOP (Formatting Objects Processor) puts the hanging baseline at 80% of the ascender height" return((-paint.FontMetrics.Ascent * 4) / 5); case TextBaseline.Middle: // MiddleTextBaseline return(-paint.FontMetrics.Descent + paint.TextSize / 2); case TextBaseline.Bottom: // BottomTextBaseline return(-paint.FontMetrics.Descent); default: break; } return(0); }
public override float?computeDistanceToActualBaseline(TextBaseline baseline) { float?result; if (child != null) { D.assert(!debugNeedsLayout); result = child.getDistanceToActualBaseline(baseline); var childParentData = (BoxParentData)child.parentData; if (result != null) { result += childParentData.offset.dy; } } else { result = base.computeDistanceToActualBaseline(baseline); } return(result); }
public TextStyle(Color color = null, float?fontSize = null, FontWeight fontWeight = null, FontStyle?fontStyle = null, float?letterSpacing = null, float?wordSpacing = null, TextBaseline?textBaseline = null, float?height = null, TextDecoration decoration = null, TextDecorationStyle?decorationStyle = null, Color decorationColor = null, string fontFamily = null, Paint background = null ) { this.color = color ?? this.color; this.fontSize = fontSize ?? this.fontSize; this.fontWeight = fontWeight ?? this.fontWeight; this.fontStyle = fontStyle ?? this.fontStyle; this.letterSpacing = letterSpacing ?? this.letterSpacing; this.wordSpacing = wordSpacing ?? this.wordSpacing; this.fontSize = fontSize ?? this.fontSize; this.textBaseline = textBaseline ?? this.textBaseline; this.height = height ?? this.height; this.decoration = decoration ?? this.decoration; this.decorationStyle = decorationStyle ?? this.decorationStyle; this.decorationColor = decorationColor ?? this.decorationColor; this.fontFamily = fontFamily ?? this.fontFamily; this.background = background ?? this.background; }
internal _RenderButtonBarRow( List <RenderBox> children = null, Axis direction = Axis.horizontal, MainAxisSize mainAxisSize = MainAxisSize.max, MainAxisAlignment mainAxisAlignment = MainAxisAlignment.start, CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.center, TextDirection textDirection = TextDirection.ltr, VerticalDirection verticalDirection = VerticalDirection.down, TextBaseline textBaseline = TextBaseline.alphabetic, float?overflowButtonSpacing = null ) : base( children: children, direction: direction, mainAxisSize: mainAxisSize, mainAxisAlignment: mainAxisAlignment, crossAxisAlignment: crossAxisAlignment, textDirection: textDirection, verticalDirection: verticalDirection, textBaseline: textBaseline ) { D.assert(overflowButtonSpacing == null || overflowButtonSpacing >= 0); this.overflowButtonSpacing = overflowButtonSpacing; }
protected override float?computeDistanceToActualBaseline(TextBaseline baseline) { return(this._baselineDistance); }
static double _boxBaseline(RenderBox box, TextBaseline baseline) { return(box.getDistanceToBaseline(baseline) ?? 0.0); }
public void SetTextBaseline(TextBaseline value) { this.TextBaseline = value; this.CallMethod <object>(TEXTBASELINE_PROPERTY, value.ToString().ToLowerInvariant()); }
public override float?computeDistanceToActualBaseline(TextBaseline baseline) { D.assert(!debugNeedsLayout); return(_baselineDistance); }
internal void DrawText(string text, FontCi font, float x, float y, TextAlign align, TextBaseline baseline) { TextTexture t = GetTextTexture(text, font); int dx = 0; int dy = 0; if (align == TextAlign.Center) { dx -= t.textwidth / 2; } if (align == TextAlign.Right) { dx -= t.textwidth; } if (baseline == TextBaseline.Middle) { dy -= t.textheight / 2; } if (baseline == TextBaseline.Bottom) { dy -= t.textheight; } Draw2dQuad(t.texture, x + dx, y + dy, t.texturewidth, t.textureheight); }
protected override double?computeDistanceToActualBaseline(TextBaseline baseline) { return(this.defaultComputeDistanceToFirstActualBaseline(baseline)); }
protected override double?computeDistanceToActualBaseline(TextBaseline baseline) { this._layoutText(this.constraints.maxWidth); return(this._textPainter.computeDistanceToActualBaseline(baseline)); }
public Task SetTextBaseline(TextBaseline value) => _jsRuntime.InvokeAsync<Task>("canvasOperator.setCanvasProperty", Canvas, ContextProperties.TextBaseline, value);
public GdiCanvas() { _width = 1; _height = 1; _currentPath = new GraphicsPath(FillMode.Winding); _stringFormat = new StringFormat(); _stringFormat.LineAlignment = StringAlignment.Near; _lineWidth = 1; _currentX = 0; _currentY = 0; _font = new GdiFont("Arial", 10, GraphicsUnit.Pixel); _textAlign = TextAlign.Left; _textBaseline = TextBaseline.Top; Color = new Color(255, 255, 255); RecreateImage(); }
public static void SetLineAlignment(DependencyObject obj, TextBaseline value) { obj.SetValue(LineAlignmentProperty, value); }
public AlignmentConverter(TextAlign textAlign, TextBaseline textBaseline) { _textAlign = textAlign; _textBaseline = textBaseline; }
float computeDistanceToActualBaseline(TextBaseline baseline) { return(child.computeDistanceToActualBaseline(baseline).Value + horizontalBorderSide.width); }
internal void DrawText(string text, float fontSize, float x, float y, TextAlign align, TextBaseline baseline) { TextTexture t = GetTextTexture(text, fontSize); int dx = 0; int dy = 0; if (align == TextAlign.Center) { dx -= t.textwidth / 2; } if (align == TextAlign.Right) { dx -= t.textwidth; } if (baseline == TextBaseline.Middle) { dy -= t.textheight / 2; } if (baseline == TextBaseline.Bottom) { dy -= t.textheight; } Draw2dQuad(t.texture, x + dx, y + dy, t.texturewidth, t.textureheight); }