繁体   English   中英

c# - 改变我的窗体的外观

[英]c# - changing the appearance of my windows form

我正在开发一个窗体。 我想更改窗体及其控件的物理外观。 我能够使用 Skincrafter 演示,但这使应用程序变得更重。 我对浏览选项卡、移动窗口等时的“沉重”感觉不满意。这是一个相当简单的程序,我在不使用 skincrafter 时没有这个问题。 不使用它时,GUI 非常敏感,我想保持这种状态。

我尝试了许多不同的皮肤,结果在每种情况下都非常相似。

所以我不会使用 skincrafter,除非有人指出这种较慢的 GUI 的可能原因。 我跟着他们的教程,没有做任何其他事情。 简单的过程。 之前:快速 GUI - 之后:慢速 GUI。

谁能推荐我另一种更改控件/表单外观的方法? 有没有办法在不依赖第三方皮肤软件的情况下以编程方式更改控件和表单的外观?

请注意,我不希望我的用户更改皮肤。 我想申请一个,就是这样。

谢谢史蒂夫

编辑:该项目还远未完成,所以我将给 WPF 一些真正好的想法,所以当我有现在的 4 倍大时,我最终不会这样做。 我已经开始转换了,应该问题不大。 发现计时器和串行端口不能在工具箱的前面,计时器被调度计时器替换。 目前没什么大不了的。 让我想使用 WPF 的另一件事是我可能需要制作图表(绘图)来显示温度随时间的变化。 我使用串行端口与读取一堆温度传感器和风扇速度的外部 USB 控制器(虚拟 COM 端口)进行通信。 我怀疑使用 WPF 绘图会更好。 最后一件事:它只是关于颜色/字体,但更多关于按钮的外观,实际窗口的外观(边框形状)。 我想做的是用 html 和 css 做的类似的事情。 我确实想要自定义标签,让它们看起来像“数字显示器”,用于实时温度和风扇速度测量。

再次感谢大家提供的帮助!

在遥远的过去,我通过子类化开箱即用的控件(标签、文本框等),并让该子类从 XML 文件(例如颜色、字体)中读取外观配置(也可以使用 app.config)。

这种方法很容易实现,我没有看到明显的性能下降。

如果您只想要一致的新外观并且不需要让最终用户能够从各种皮肤中进行选择,那么子类化方法非常简单。 例如,要修改Label的外观:

public MyLabel : Label
{
    MyLabel()
    {
        this.ForeColor = Colors.Blue;
    }
}

然后,在您的代码中当前有 Label 的任何地方,请改用 MyLabel。

如果您要开始一个新项目,我强烈建议您改用 WPF。 它提供了一个更加灵活的 UI 框架。 一个关键特性是它将外观与 UI 实现分开。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM