コード例 #1
0
        public override object Create(string fontName, double size, FontStyle style, FontWeight weight, FontStretch stretch)
        {
            var t = GetStretchTrait(stretch) | GetStyleTrait(style);

            var    names = fontName.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            NSFont f     = null;

            foreach (var name in names)
            {
                f = NSFontManager.SharedFontManager.FontWithFamily(name.Trim(), t, weight.ToMacValue(), (float)size);
                if (f != null)
                {
                    break;
                }
            }
            if (f == null)
            {
                return(null);
            }

            var fd = FontData.FromFont(NSFontManager.SharedFontManager.ConvertFont(f, t));

            fd.Style   = style;
            fd.Weight  = weight;
            fd.Stretch = stretch;
            return(fd);
        }
コード例 #2
0
ファイル: Util.cs プロジェクト: wiltonlazary/xwt
        public static NSFont WithWeight(this NSFont font, FontWeight weight)
        {
            int w      = weight.ToMacValue();
            var traits = NSFontManager.SharedFontManager.TraitsOfFont(font);

            traits |= weight >= FontWeight.Bold? NSFontTraitMask.Bold : NSFontTraitMask.Unbold;
            traits &= weight >= FontWeight.Bold? ~NSFontTraitMask.Unbold : ~NSFontTraitMask.Bold;
            return(NSFontManager.SharedFontManager.FontWithFamily(font.FamilyName, traits, w, font.PointSize));
        }