【问题标题】:How to store the result of the FontDialog.Font Property in a Text file [duplicate]如何将 FontDialog.Font 属性的结果存储在文本文件中[重复]
【发布时间】:2016-11-16 14:21:29
【问题描述】:

我试图给用户一个菜单选项来保存一个文本文件,其中包含他/她选择的字体和文本框内文本颜色的首选项。

这是我正在使用的代码。 MS Visual Studio 2015 告诉我

无法将类型“string”隐式转换为“System.Drawing.Font”

显然我需要另一种类型的变量来转换为System.Drawing.Font。我什至尝试过String,但也没有用。

private void loadPreferencesToolStripMenuItem_Click(object sender,  EventArgs e)
    {
        if (openFileDialog2.ShowDialog() == DialogResult.OK)
        {
            System.IO.StreamReader sr = new System.IO.StreamReader(openFileDialog2.FileName);
            var myFont= sr.ReadLine();
            var myColor = sr.ReadLine();
            sr.Close();
            fontDialog1.Font = myFont;
        }
    }

【问题讨论】:

  • 您正在从设置文件中读取一个字符串,然后将 Font 属性设置为一个字符串。将其设置为 Font 类,即fontDialog1.Font = new Font(myFont, fontSize:20);

标签: c# fonts


【解决方案1】:

拉里,

您没有向我们展示您必须将字体和颜色存储到您使用 openFileDialog2 打开的文件中的代码,但该结构很重要。我将假设您只是将字体和颜色的 ToString 保存到文件中。

您的文件可能如下所示:

[字体:名称=Segoe UI,大小=8.25,单位=3,GdiCharSet=0, GdiVerticalFont=False]

颜色 [黑色]

您的代码必须解析字符串以将它们转换回字体和颜色。 解析字体的代码将要求您拆分字符串,读取将用于创建新字体的名称和值。这同样适用于颜色;您必须将来自阅读器的字符串解析为(在我的示例中)一个颜色字符串(例如黑色)。

var myFont = new Font(fontName, fontSize);

var myColor = ColorTranslator.FromHtml(colorName);

fontName、fontSize 和 colorName 是您必须创建然后从流中填充的变量。

HTH,

马克

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-19
    • 2023-03-27
    • 2015-07-13
    • 1970-01-01
    • 2020-01-22
    • 2017-03-15
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多