如何将 FontDialog.Font 属性的结果存储在文本文件中

本文关键字:存储 文本 文件 结果 FontDialog Font 属性 | 更新日期: 2023-09-27 17:57:02

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

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

不能将类型"字符串"隐式转换为"系统.绘图.字体"

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

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;
        }
    }

如何将 FontDialog.Font 属性的结果存储在文本文件中

Larry,

您没有向我们展示将字体和颜色存储到使用 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是您必须创建然后从流中填充的变量。

呵呵,

马克