你如何制作一个新的 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... */
}
}
然后使用此类型作为自定义按钮的基础。
我 运行 遇到了 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... */
}
}
然后使用此类型作为自定义按钮的基础。