如何在设计器中显示控件主题?

时间:2019-06-22 08:14:38

标签: c# visual-studio winforms visual-studio-2019

我要向其添加主题的许多自定义控件(某些自TextBox,Button,ComboBox继承)。因此,我要做的第一件事是创建一个ThemeManager类:

public class ThemeManager
{
    private static ThemeManager instance;

    private ITheme theme;

    public ITheme Theme
    {
        get => theme; set => theme = value;
    }

    private ThemeManager()
    {
        this.theme = new DefaultTheme();
    }

    public static ThemeManager Instance => instance ?? (instance = new ThemeManager());
}

Theme类是一个简单的类,对于控件的各个部分,颜色具有许多不同的属性。在我的自定义控件(例如,从TextBox继承)中,添加了以下内容:

[Browsable(false)]
public ThemeManager ThemeManager => ThemeManager.Instance;

public CustomTextBox()
    : base()
{
    SetStyle(ControlStyles.UserPaint, true);
}

然后我覆盖OnPaintOnPaintBackground进行绘制。当应用运行时,上面的方法可以正常工作。

但是,在设计器中设计表单时,我也想查看主题。有可能这样做吗?我是否需要创建Component并将其添加到控件中以便仅在设计模式下使用?

0 个答案:

没有答案