除了创建自定义按钮、自定义文本框和自定义标签等,然后在应用程序的所有窗体中使用这些控件,然后根据需要更改这些控件的默认颜色和字体之外,有没有一种简单的方法可以在包含多个表单的现有应用程序上实现这种类似 css 的功能?
顺便说一下,我知道我可以以编程方式打开每个 *.Designer.cs 文件,然后用“My.Namespace.My[Control]”搜索/替换“System.Windows.Forms.[Control]”的实例",但我不确定在代码设置控件的字体和颜色以及类似属性的情况下这将如何工作。那么是否只是确保自定义控件覆盖所有相关的 getter 方法的问题?
最佳答案
Windows 窗体不提供任何类型的皮肤。
一个简单的解决方法是在 Form
类上编写某种扩展方法:
public static void ApplySkin(this Form form, Skin skin)
{
foreach (Control ctrl in form.Controls)
{
if (ctrl is TextBox)
{
TextBox textBox = (TextBox)ctrl;
textBox.BackColor = skin.BackColor;
textBox.ForeColor = skin.ForeColor;
textBox.Font = skin.Font;
...
}
else if (ctrl is ComboBox)
{
ComboBox comboBox = (ComboBox)ctrl;
comboBox.BackColor = skin.BackColor;
comboBox.ForeColor = skin.ForeColor;
comboBox.Font = skin.Font;
...
}
else if (ctrl is ...)
}
}
关于c# - 更改应用程序中多个表单样式的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15994445/