是否有一些标准方法可以让我的应用程序换肤?
"skinnable"是指应用程序支持多个皮肤的能力.
我不是在这里针对任何特定平台.只是想知道是否有任何使应用程序可换肤的一般指导原则.
看起来像剥离Web应用程序相对容易.桌面应用程序怎么样?
皮肤只是另一种抽象层次(YALOA!).
如果您阅读了MVC设计模式,那么您将了解所需的许多原则.
表示层(或皮肤)只需要执行以下操作:
显示界面
当采取某些操作(单击,在框中输入文本等)时,它会触发操作
当需要更改时,它必须从模型和控制器接收通知
在正常程序中,这种抽象是通过具有将文本框连接到它们所涉及的方法和对象的代码来完成的,并且具有基于程序命令改变显示的代码.
如果你想添加蒙皮,你需要具备这种能力,并且可以在不重新编译代码的情况下完成.
例如,查看XUL,看看它是如何完成的.您会发现许多皮肤项目使用XML来描述皮肤的各种"面孔"(它播放音乐,或者为MP3播放器皮肤组织磁带库),然后是每个控件所在的位置以及它们的数据和方法应该附在该计划中.
在你这样做之前看起来很难,然后你会发现它就像你之前处理过的任何其他抽象层次一样(从带有gotos的程序,到控制结构,到函数,到结构,到类和对象,再到JIT)编译器等).
最初的学习曲线并不简单,但做一些项目,你会发现它并不难.
-亚当
将所有样式保存在单独的CSS文件中
远离任何内联造型