예제 #1
0
        public SkiaFont(string name, float size, FontStyle fontStyle, GraphicsUnit unit, char?typefaceCharakter = null)
        {
            var pixelSize = size;

            switch (unit)
            {
            case GraphicsUnit.Point:
                pixelSize = size.FontSizePointsToPixels();
                break;
            }

            var skFont = new SKFont(SKTypeface.FromFamilyName(name, fontStyle.ToSKFontStyle()), size: pixelSize);

            _skPaint = new SKPaint(skFont)
            {
                Style = SKPaintStyle.Fill
            };

            this.Name  = name;
            this.Size  = size;
            this.Style = fontStyle;
            this.Unit  = unit;

            if (typefaceCharakter.HasValue)
            {
                var fontManager = SKFontManager.Default;
                var typeFace    = fontManager.MatchCharacter(name, typefaceCharakter.Value);
                if (typeFace != null)
                {
                    _skPaint.Typeface = typeFace;
                }
            }
        }