【问题标题】:How to get text pixel size in DataGridTextColumn如何在 DataGridTextColumn 中获取文本像素大小
【发布时间】:2020-06-29 06:58:02
【问题描述】:

我正在尝试使用 MVVM 模式在 WPF 中的 DataGridTextColumn 中找出文本的像素大小(最大长度),以便我可以设置 DataGridTextColumn 的最小宽度。

谁能帮我解决这个问题?

【问题讨论】:

  • 请注意,除非您使用固定宽度的字体,否则 AAAA 将占用与 IIII 不同的空间量,即使两者都是 4 个字符。另请注意,由于kerning,某些字符与前一个或下一个字符之间可能有一个负空格,这意味着它们重叠。如果您要确定可以容纳的最大字符数,您可能应该基于您最宽的字符数。

标签: c# wpf mvvm datagrid datagridtextcolumn


【解决方案1】:

您可以使用此方法从字体中获取文本大小:

    SizeF GetSizeOfFont(Font font, string text)
    {
        SizeF size;
        using (var graphics = System.Drawing.Graphics.FromImage(new Bitmap(1, 1)))
        {
            var sty = DataGrid;
            size = graphics.MeasureString(text, font);
        }
        return size;
    }

例子:

    var font = new Font("Segoe UI", 50, GraphicsUnit.Point);
    var size = GetSizeOfFont(font, "Hello World");
    var width = size.Width;
    var heidht = size.Height;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多