如何使用另一种形式更改一种形式的 WPF RichTextBox 中的字体?

How do I change the font in a WPF RichTextBox in one Form using another Form?

我正在尝试从另一个表单控制 RichTextBox 字体。 这是我在第二种形式中尝试过的:

    private void Button1_Click(object sender, EventArgs e)
    {
        if (comboBox1.SelectedItem.ToString() == "Agency FB") ;
        {
            Form1.richTextBox1.Font.Replace = new Font("Microsoft Sans Serif");
        }
    }

我预计它会像那样工作,但它告诉我两件事:

'Form1.richTextBox1' is inaccessible due to it's protection level

'Font' does not contain a constructor that takes 1 argument

问题是您不能从其他表单访问 richTextBox1,如果您想访问它,您可能需要向 Form1 添加一个 public 函数,并使用一个 Font 参数调用它反而。另外,我很确定您需要一个对象引用而不是静态调用它。所以你需要找到一种方法来获取 Form1 的实例。

此外,Font 不包含带 1 个参数的构造函数。要解决此问题,您只需指定字体大小(如浮点数),以便构造函数如下所示: new Font("Microsoft Sans Serif", 11f).