'How do you make a new FlatButtonAppearance object?
I'm running into a frustratingly stupid problem with the FlatButtonAppearance object, which apparently has a constructor that I can't find any information about.
It doesn't seem to have any defined constructors, and doesn't inherit from anything - I was under the impression that the compiler would generate a blank constructor public FlatButtonAppearance() {}, however that doesn't appear to be the case.
Whenever I try creating a FlatButtonAppearance object using any of the following methods:
FlatButtonAppearance flatAppearance = new();
FlatButtonAppearance flatAppearance = new()
{
BorderSize = 1,
BorderColor = Color.Transparent,
CheckedBackColor = Color.Transparent,
MouseDownBackColor = Color.Transparent,
MouseOverBackColor = Color.Transparent
};
It throws this error:
error CS1729: 'FlatButtonAppearance' does not contain a constructor that takes 0 arguments
So clearly it does have a constructor, however neither intellisense nor MSDN will tell me what its signature is.
Even Visual Studio's metadata doesn't show a constructor.
The only way that I can find that actually works is this:
FlatAppearance flatAppearance = new Button().FlatAppearance;
but Button has to get that from somewhere too, and creating an entire button control just so I can use the FlatAppearance property is just a dirty hack.
Is there something I'm missing here?
Solution 1:[1]
Based on your response comment, you could do something like this:
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... */
}
}
Then use this type as the base for your custom buttons.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
