public Labeler(float f, float sd, Vector2 l, Rect tlb, float b, FontMetricsHolder.Metrics m, CanvasDrawingSession ds) { fontSize = f; sizeDim = sd; layoutSize = l; textLayoutBounds = tlb; baselineInWorldSpace = b; glyphRunMetrics = m; drawingSession = ds; horizontalMidpoint = (layoutSize.X / 2); leftJustifiedTextFormat = new CanvasTextFormat() { VerticalAlignment = CanvasVerticalAlignment.Top, HorizontalAlignment = CanvasHorizontalAlignment.Left }; rightJustifiedTextFormat = new CanvasTextFormat() { VerticalAlignment = CanvasVerticalAlignment.Top, HorizontalAlignment = CanvasHorizontalAlignment.Right }; NextLabel(); }
float GetGlyphSize(float fontSize, FontMetricsHolder.Metrics metrics) { // // This isn't a universally reliable way of determining baseline height // within a layout, but it's fine for this demo- since we've got no inline objects, // horizontal text and no custom line spacing. // return(fontSize * (metrics.Ascent + metrics.LineGap)); }
public Labeler(float f, float sd, Vector2 l, Rect tlb, float b, FontMetricsHolder.Metrics m, CanvasDrawingSession ds) { fontSize = f; sizeDim = sd; layoutSize = l; textLayoutBounds = tlb; baselineInWorldSpace = b; glyphRunMetrics = m; drawingSession = ds; horizontalMidpoint = (layoutSize.X / 2); leftJustifiedTextFormat = new CanvasTextFormat() { VerticalAlignment = CanvasVerticalAlignment.Top, HorizontalAlignment = CanvasHorizontalAlignment.Left }; rightJustifiedTextFormat = new CanvasTextFormat() { VerticalAlignment = CanvasVerticalAlignment.Top, HorizontalAlignment = CanvasHorizontalAlignment.Right }; NextLabel(); }