C# 如何获取上下文菜单项字体信息,如键入dize?如何更改项目的字体大小类型?

C# 如何获取上下文菜单项字体信息,如键入dize?如何更改项目的字体大小类型?,c#,.net,winforms,C#,.net,Winforms,在这段代码中,我用一些项目创建上下文菜单,然后绘制最后一个项目。 我想,我画的最后一个项目,它的字体大小和类型将是相同的3个项目一样,像剪切复制粘贴 我如何知道第一个项目的字体样式和大小,以便我可以更改最后一个项目的外观 private void dataGridView1_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right)

在这段代码中,我用一些项目创建上下文菜单,然后绘制最后一个项目。 我想,我画的最后一个项目,它的字体大小和类型将是相同的3个项目一样,像剪切复制粘贴

我如何知道第一个项目的字体样式和大小,以便我可以更改最后一个项目的外观

private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                ContextMenu m = new ContextMenu();

                m.MenuItems.Add(new MenuItem("Cut"));
                m.MenuItems.Add(new MenuItem("Copy"));
                m.MenuItems.Add(new MenuItem("Paste"));

                int currentMouseOverRow = dataGridView1.HitTest(e.X, e.Y).RowIndex;

                if (currentMouseOverRow >= 0)
                {
                    m.MenuItems.Add(new CustomMenuItem(string.Format("Row number {0}", currentMouseOverRow)));
                    m.MenuItems[m.MenuItems.Count - 1].OwnerDraw = true;
                    m.MenuItems[m.MenuItems.Count - 1].DrawItem += Cm_DrawItem;
                    m.MenuItems[m.MenuItems.Count - 1].MeasureItem += MeasureMenuItem;
                }

                m.Show(dataGridView1, new Point(e.X, e.Y));

            }
        }
然后画:

    void Cm_DrawItem(object sender, DrawItemEventArgs e)
    {
        e.DrawBackground();
        var item = (MenuItem)sender;
        var g = e.Graphics;
        var font = new Font("Arial", 10, FontStyle.Italic);
        var brush = System.Drawing.Brushes.Red;
        g.DrawString(item.Text, font, brush, e.Bounds.X, e.Bounds.Y);
        font.Dispose();
    }
然后测量:

    void MeasureMenuItem(object sender, MeasureItemEventArgs e)
    {
        MenuItem m = (MenuItem)sender;
        Font font = new Font(Font.FontFamily, Font.Size, Font.Style);
        SizeF sze = e.Graphics.MeasureString(m.Text, font);
        e.ItemHeight = (int)sze.Height;
        e.ItemWidth = (int)sze.Width;
    }

这就是我要找的

var font = System.Drawing.SystemFonts.DefaultFont;