有没有办法为 C# 控件制作新皮肤?
例如,我想要一个与默认功能相同但外观完全不同的列表视图。
谢谢 :)
5 回答
取决于你的图书馆。
获胜形式:乏味且很难做到。完成单个控件的造型后,您的头上将没有头发。
Wpf:Wpf 正是为此而构建的(当然,还有许多其他令人惊奇的事情)。此页面可能对您有很大帮助。
如果您想完全为您的应用程序设置皮肤,我建议您学习和使用 WPF。我也做到了,这太棒了,不仅是可定制性,而且是一般的一切。它是一个很棒的平台,但由于它需要 DirectX 和更多资源,它的可移植性不高。
不过,如果您使用的是 Windows.Forms 并希望更改控件的外观,那么它会有点困难。
您必须从控件创建派生类并覆盖 OnPaint 和 OnPaintBackground 事件并实现您自己的代码。
是的,有了 WPF,一切皆有可能。但是,如果您只习惯于 Windows 窗体,请记住 WPF 是一项新技术,其中包含需要一些时间来学习的新概念。
我以前也走过这条路,但它并不漂亮。最后我没有重新设置控件。我们遇到了 WinForms 树视图的问题。那是另一个故事。
在 WinForms 中,是的,您为要编辑的控件创建派生版本。并彻底改变 OnPaint 和相关的 Paint 方法。对于树视图来说,这是一场噩梦,所以最后没有这样做。除非您有从头开始绘制控件的经验,否则我不会考虑此选项。
如果您在 WPF 中,控件全部由视觉元素组成,并且更改它们更容易。WPF 的控件较少,并且依赖于开发人员根据自己的需要对其进行编辑。就我个人而言,我想要更多基本的 WPF 控件,例如 WinForms,但那又是另一个故事。
其他 2 个选项是,从头开始一个全新的控件,或者在网上找到您喜欢的控件外观并购买它。许多网站出售定制的 .net 控件。