示例#1
0
        static private Font GetFont(Layout.FontInfo fontInfo)
        {
            if (_fonts.TryGetValue(fontInfo, out var font))
            {
                return(font);
            }

            font = new Font(fontInfo.Name, fontInfo.Size, fontInfo.Style);
            _fonts.Add(fontInfo, font);
            return(font);
        }
示例#2
0
        static Size MeasureString(Layout.FontInfo fontInfo, string text)
        {
            var key = new Tuple <Layout.FontInfo, string>(fontInfo, text);

            if (_measureResults.TryGetValue(key, out var result))
            {
                return(result);
            }

            var font = GetFont(fontInfo);
            var siz  = _measureGraphics.MeasureString(text, font);

            result = new Size((int)Math.Ceiling(siz.Width), (int)Math.Ceiling(siz.Height));
            _measureResults.Add(key, result);
            return(result);
        }