顶顶,顺便问一下C#里能否检查机器上某个字体是否存在
PS:抓异常不可取,我试过了

解决方案 »

  1.   

    http://topic.csdn.net/u/20100902/18/8974f610-ed64-4386-ad86-6ad2c0f24336.html
    这个我做一个项目时遇到的问题。可以参考看看。
    不过和你的可能有些不一样
    一般来说,还是用每个系统都可能有的字体比较好,不容易出问题
      

  2.   

    有个 Graphics.MeasureString  调用, 提前测量好再决定留多少空间(好似不是你要的)系统已安装字体, 可以
          System.Drawing.Text.InstalledFontCollection ifc = new System.Drawing.Text.InstalledFontCollection();
          int count = ifc.Families.Length;获得.
      

  3.   

    你调原生字体对方没有你肯定调不出来,一个是你自己的软件分发时候包含雅黑这个字体然后程序启动时候加载,一个是你做成图给贴上去.
    你要说对方明明没有你硬是成成功调用,我相信bill.gates也做不到.
      

  4.   

    不知道大家试过没有,代码如下:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                drawstring();
            }        public void drawstring()
            {
                Image img = this.BackgroundImage;
                Graphics g = Graphics.FromImage(img);            Font yh = new Font("微软雅黑", 12);
                Font st = new Font("宋体", 12);            Font f1 = new Font(yh, FontStyle.Underline);
                Font f2 = new Font(st, FontStyle.Underline);
                g.DrawString("设置宝宝头像", f1, new SolidBrush(ForeColor), new PointF(120, 340));
                g.DrawString("设置宝宝头像", f2, new SolidBrush(ForeColor), new PointF(120, 370));        }
        }
    }你试试在没有安装雅黑的机器上,2个大小差狠多