【发布时间】:2011-01-29 15:58:16
【问题描述】:
有没有办法为 C# 控件制作新皮肤?
例如,我想要一个与默认功能相同的列表视图
但外观完全不同。
谢谢:)
【问题讨论】:
有没有办法为 C# 控件制作新皮肤?
例如,我想要一个与默认功能相同的列表视图
但外观完全不同。
谢谢:)
【问题讨论】:
取决于你的图书馆。
Win Forms:单调乏味且很难做到。完成单个控件的样式后,您的头上就没有头发了。
Wpf:Wpf 正是为此而构建的(当然,还有许多其他令人惊奇的事情)。这个page 可能对你有很大帮助。
如果您想完全为您的应用程序设置皮肤,我建议您学习和使用 WPF。我也做到了,这太棒了,不仅是可定制性,而且是一般的一切。这是一个很棒的平台,但由于它需要 DirectX 和更多资源,所以它的可移植性不高。
【讨论】:
不过,如果您使用的是 Windows.Forms 并希望更改控件的外观,那将有点困难。
您必须从控件创建派生类并覆盖 OnPaint 和 OnPaintBackground 事件并实现您自己的代码。
【讨论】:
是的,有了 WPF,一切皆有可能。但如果您只习惯于 Windows 窗体,请记住 WPF 是一项新技术,其中包含需要一些时间来学习的新概念。
【讨论】:
正如 Femaref 所说,WPF 中有很多可能性,但在 WinForms 中是相当困难的。
如果您想比他链接的页面更进一步(它仅涵盖样式),您可能会对同一页面侧栏中的“模板和样式”这一点感兴趣:templates and styles 和模板部分在那里:templates。使用模板,您可以完成大多数样式无法完成的事情。一个非常基本的例子(你会在几乎所有关于模板的教程中找到)是一个椭圆按钮。此外,您还可以重新定义其他内容,例如使用触发器鼠标悬停和鼠标点击出现。
希望有所帮助;)
【讨论】:
我以前也走过这条路,但它并不漂亮。最后我没有重新设置控件。我们遇到了 WinForms 树视图的问题。那是另一个故事。
在 WinForms 中,是的,您可以为要编辑的控件创建派生版本。并彻底改变 OnPaint 和相关的 Paint 方法。对于树视图来说,这是一场噩梦,所以最后没有这样做。除非您有从头开始绘制控件的经验,否则我不会考虑此选项。
如果您在 WPF 中,控件全部由视觉元素组成,并且更改它们更容易。 WPF 的控件较少,并且依赖于开发人员根据自己的需要对其进行编辑。就我个人而言,我想要更基本的 WPF 控件,例如 WinForms,但那又是另一个故事了。
另外 2 个选项是,从头开始创建一个全新的控件,或者在网上找到您喜欢的控件外观并购买。许多网站都销售定制的 .net 控件。
【讨论】: