我遇到了一個令人沮喪的愚蠢問題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
很明顯它確實有一個建構式,但是智能感知和 MSDN 都不會告訴我它的簽名是什么。
甚至 Visual Studio 的元資料也沒有顯示建構式。
我能找到真正有效的唯一方法是:
FlatAppearance flatAppearance = new Button().FlatAppearance;
但Button
也必須從某個地方獲得它,并且創建一個完整的按鈕控制元件以便我可以使用該FlatAppearance
屬性只是一個骯臟的黑客。
我在這里缺少什么嗎?
uj5u.com熱心網友回復:
根據您的回復評論,您可以執行以下操作:
public abstract class TabHeaderButtonBase : ButtonBase
{
public TabHeaderButtonBase() : base()
{
FlatAppearance.BorderSize = 1;
FlatAppearance.BorderColor = Color.Transparent;
FlatAppearance.CheckedBackColor = Color.Transparent;
FlatAppearance.MouseDownBackColor = Color.Transparent;
FlatAppearance.MouseOverBackColor = Color.Transparent;
/* You'll probably want this as well... */
FlatStyle = FlatStyle.Flat;
}
}
然后將此型別用作自定義按鈕的基礎。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/469039.html