你如何制作一个新的 FlatButtonAppearance 对象?

How do you make a new FlatButtonAppearance object?

我 运行 遇到了 FlatButtonAppearance 对象的一个​​令人沮丧的愚蠢问题,它显然有一个我找不到任何相关信息的构造函数。

它似乎没有任何定义的构造函数,也没有继承任何东西 - 我的印象是编译器会生成一个空白的构造函数 public FlatButtonAppearance() {},但是这似乎并没有就是这样。

每当我尝试使用以下任一方法创建 FlatButtonAppearance 对象时:

FlatButtonAppearance flatAppearance = new();
FlatButtonAppearance flatAppearance = new()
{
    BorderSize = 1,
    BorderColor = Color.Transparent,
    CheckedBackColor = Color.Transparent,
    MouseDownBackColor = Color.Transparent,
    MouseOverBackColor = Color.Transparent
};

它抛出这个错误:

error CS1729: 'FlatButtonAppearance' does not contain a constructor that takes 0 arguments

很明显它确实有一个构造函数,但是 intellisense 和 MSDN 都不会告诉我它的签名是什么。
甚至 Visual Studio 的元数据也没有显示构造函数。

我发现唯一有效的方法是:

FlatAppearance flatAppearance = new Button().FlatAppearance;

但是 Button 也必须从某个地方获取它,创建一个完整的按钮控件以便我可以使用 FlatAppearance 属性 只是一个肮脏的 hack。

我在这里遗漏了什么吗?

根据您的回复评论,您可以这样做:

public abstract class TabHeaderButtonBase : ButtonBase
{
    public TabHeaderButtonBase() : base()
    {
        /* You'll probably want this as well... */
        FlatStyle = FlatStyle.Flat;

        FlatAppearance.BorderSize = 1;
        FlatAppearance.BorderColor = Color.Transparent;
        FlatAppearance.CheckedBackColor = Color.Transparent;
        FlatAppearance.MouseDownBackColor = Color.Transparent;
        FlatAppearance.MouseOverBackColor = Color.Transparent;

        /* And any other defaults... */
    }
}

然后使用此类型作为自定义按钮的基础。