主题类型变种

设计用户界面时,有时候会想要让某个 Control 节点看起来和 Theme 中定义的一般样式不同。每个控件节点都有主题属性覆盖项,可以让你针对单独的 UI 元素定义不同的样式。

../../_images/themecheck.png

如果你需要让若干控件都使用同一个自定义的外观,这样的做法很快就会变得难以管理。想象一下,你的项目里需要用到灰色、蓝色、红色变种的 Button。每在界面里添加一个按钮元素都需要进行设置,非常繁琐。

为了方便组织,更好地发挥主题的威力,你可以使用主题类型变种。它们用起来就像普通的主题类型,但无法自给自足,不是独立的,扩展自其他类型,称作基础类型。

还是上面的例子,你的主题可以为 Button 类型定义样式、颜色、以及字体,UI 中的所有按钮元素都会得到自定义。如果要再有灰色、红色、蓝色按钮,你就会创建一个新的类型,例如 GrayButton,然后把它标记为基础 Button 类型的变种。

类型变种可以在替换掉基础类型的某些内容的同时保留其他方面。它们还可以定义基础样式没有定义的属性。例如,你的 GrayButton 可以覆盖基础 Buttonnormal 样式,加上 Button 里没有定义的 font_color。控件会使用这两个类型的组合,并且优先使用类型变种。

备注

控件如何确定使用哪个类型、哪个主题、哪个主题项目,在《GUI 皮肤简介》一文的自定义项目部分有更详尽的描述。

创建类型变种

要创建主题变种,请打开主题编辑器,然后点击编辑器右侧类型下拉框旁的加号图标。在文本框中输入你给你的主题类型变种起的名字,然后点击添加类型

类型下拉框的下方是属性选项卡。请切换到图标是扳手和螺丝刀的选项卡。

../../_images/base_type.png

点击基础类型字段旁的加号。你可以在此处选择基础类型,一般就是控件节点的类名(例如 ButtonLabel 等)。类型变种还可以进行嵌套,扩展其他类型变种。这就和控件节点的继承基类风格一样。例如,CheckButton 继承 Button 的风格,因为对应的节点类型存在扩展关系。

选好基础类型之后,你应该就能在主题编辑器的其他选项卡中看到对应的属性了。你可以像往常一样去编辑。

使用类型变种

现在已经创建好了一个类型变种,你可以将其应用到你的节点上了。检查器面板中,在控件节点的 Theme 属性下,你可以找到 Theme Type Variation 属性。默认为空,表示只有基础类型会对这个节点起效。

你可以从下拉列表中选择一个类型变种,或者手动输入名称。属于项目主题的变种才会出现在列表中,项目主题可以在项目设置中配置。其他情况下,你就得手动输入变种的名称了。请点击右侧的铅笔图标。然后输入类型变种的名称,并点击对勾图标或者按回车键。如果存在使用这个名称的类型变种,该节点就会去使用。