Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Internet explorer 如何以浏览器的方式测量文本大小?_Internet Explorer_C# 4.0_Firefox_Gdi+ - Fatal编程技术网

Internet explorer 如何以浏览器的方式测量文本大小?

Internet explorer 如何以浏览器的方式测量文本大小?,internet-explorer,c#-4.0,firefox,gdi+,Internet Explorer,C# 4.0,Firefox,Gdi+,我试图在独立应用程序(windows或Java)中测量字符串的像素大小,但此应用程序报告的大小与FF或IE中报告的字符串大小不匹配 我使用下面的代码测量字符串“Graphics”的大小,它返回97像素。FF和IE报告字符串的大小为64像素。我唯一想到的是dpi,但我明确设定了它 有谁能给我一些建议,告诉我如何才能做到这一点?如前所述,我正在寻找一种独立的文本测量方法,但结果需要与浏览器的大小报告相当 Bitmap bmp = new Bitmap(1, 1); SizeF f =

我试图在独立应用程序(windows或Java)中测量字符串的像素大小,但此应用程序报告的大小与FF或IE中报告的字符串大小不匹配

我使用下面的代码测量字符串“Graphics”的大小,它返回97像素。FF和IE报告字符串的大小为64像素。我唯一想到的是dpi,但我明确设定了它

有谁能给我一些建议,告诉我如何才能做到这一点?如前所述,我正在寻找一种独立的文本测量方法,但结果需要与浏览器的大小报告相当

Bitmap bmp = new Bitmap(1, 1);
        SizeF f = new SizeF();
        bmp.SetResolution(CreateGraphics().DpiX, CreateGraphics().DpiY);

        using (Graphics g = Graphics.FromImage(bmp))
        {
            g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
            FontFamily ffm = FontFamily.Families.FirstOrDefault(r=>r.Name.Equals("Arial"));

            using (System.Drawing.Font font = new System.Drawing.Font(ffm, 12.0F,  FontStyle.Regular, GraphicsUnit.Point))
            {
                float ff = font.SizeInPoints;
                f = TextRenderer.MeasureText(g,"Graphics", font, new Size(int.MaxValue, int.MaxValue), TextFormatFlags.NoPadding);
            }
        }
我通过创建这个span标记并使用js获取其大小来测量浏览器中的大小

<span style="font-family: Arial; font-size: 12pt;">Graphics</span>
图形

您希望匹配哪些浏览器大小?那些使用GDI的,那些使用DirectWrite的,那些在Mac上的,那些在Linux上的?他们都报告了不同的尺寸。。。。很可能您正在使用GDI;Firefox和最近Windows上的IE使用DirectWrite。谢谢Boris,我知道我的问题很模糊。我写了一个快速DirectDrite应用程序(win),文本大小与FF相当!谢谢。你知道文本是如何在Linux(任何发行版)上绘制的吗?既然Windows使用DirectWrite,linux使用什么?我不知道,对不起。。。。