如何设置应用程序的样式,以便在我的应用程序中显示所有控件';s的配色方案

本文关键字:应用程序 控件 显示 方案 设置 何设置 样式 我的 | 更新日期: 2023-09-27 18:25:31

我想在.NET中为MDI WinForms应用程序(C#和VB.NET的混合)设置一个样式。我希望所有面板和窗体都是特定的颜色。我希望文本框在只读时是特定的颜色,而在非只读时是不同的颜色。我不想使用默认值。有什么关于我如何为这个应用程序开发的任何表单制作这个GLOBAL的建议吗?我正在寻找一种方法,这样我就不必在我创建的每一种形式中都这样做。

首选:不想切换到使用任何第三方工具。希望只使用WinForms和标准.NET库。

如何设置应用程序的样式,以便在我的应用程序中显示所有控件';s的配色方案

代码项目上的这个怎么样,它包括源代码,甚至可以免费用于商业用途。

它允许您将StyleSheetManager与WinForms应用程序相关联,允许您在XML文件中定义样式,就像WinForms等同于CSS一样。

例如

   <Style Name="FormType1">
        <Properties>
            <Property Name="BackColor" Value="White" />
            <Property Name="Text" Value="Personal information" />
            <Property Name="Enabled" Value="true" />
        </Properties>
    </Style>

链接:http://www.codeproject.com/Articles/14814/StylesSheetManager-A-CSS-like-component-for-WinFor

您可以使用第三方控制集,如DevExpress,它为WinForms应用程序提供了完整的蒙皮系统。您可以允许用户选择他们想要的主题,也可以使用他们的工具创建自己的皮肤以匹配您想要的颜色。

对于所有控件的"外观",它们也具有非常深入的扩展属性。

如果你想坚持使用纯开箱即用的WinForms,我建议你用一个在加载或初始化窗体时执行的方法创建一个基本窗体(为了控制布局的定时,你可能不得不使用这个方法)。这将从这个基本窗体继承应用程序中的所有其他窗体。此方法将遍历窗体的控件集合,然后设置各种控件的颜色属性。它必须是递归的,才能在容器控件中获取控件。这样,它就被包含在你的应用程序的一个地方,所以如果你必须添加新的颜色功能或控件类型,那么它就是一个地方。我也会考虑暂停和恢复布局,以防出现任何性能问题。

您可以尝试CodeProject.com上的"Themer"。

我认为您有一些选择,包括一些第三方蒙皮工具。

但是,您是否尝试过扩展控件并覆盖"绘制"事件,根据只读属性设置颜色?

这有道理吗?

你可以尝试的最好的组件之一是DevExpress,它有一个名为defaultlookandfeel的控件,这正是你想要的,但别忘了它不是免费的。

Devexpress DefaultLookAndFeel