首页 > 解决方案 > 如何为VB.NET windows窗体中的控件分配被动易更改样式(类似于android styles.xml)

问题描述

我正在尝试将主题选项添加到我的 VB.NET 程序中,而不是为每个元素重复相同代码的肮脏方式......是否可以创建一些类似于我们在 android 中的样式方法?( styles.xml)

我开始制作的第一件事是为我想在我的应用程序中使用的主题创建一个库,但我很快意识到使用常规的类/方法组仍然无济于事,因为我每次需要时仍然需要调用它们控件是主题,因为它不是被动的,如下所示:

Public Class Theme
    Public Shared Sub SetThemeLight(c As Control, Gray As Boolean)
        Dim LBack As Color = Color.White
        Dim LBackGray As Color = Color.WhiteSmoke
        Dim LFore As Color = SystemColors.ControlText
        Dim LForeGray As Color = Color.FromArgb(51, 51, 51)

        If Gray Then
            c.BackColor = LBackGray
            c.ForeColor = LForeGray
        Else
            c.BackColor = LBack
            c.ForeColor = LFore
        End If
    End Sub
'...

'Somewhere else in the program for example
Public Class Main
    Theme.SetThemeLight(TextBox1, False)
'...

这里的问题是过于简单,效率很低。我很想找到一种类似于 android 的有效主题方式styles.xml

标签: vb.netwinformscustom-controlswindows-forms-designer

解决方案


推荐阅读