在花了很多时间试图找出这个问题的答案之后,以及@Naveen 在问题评论中写的链接,我觉得这个问题值得一个真正的答案。
首先,如果您尝试创建自己的 XPage 主题,该 wiki的链接非常有用。在发布这个问题之前,我发现了类似的东西。 如果您试图找到一种方法来扩展 XPage 主题并需要一种方法来获取主题的 XML 文件的控件名称,那么 Naveen 在评论中也列出了这篇文章也是一个很好的来源,但是它不适用于扩展库控件!这是因为至少大多数(如果不是全部)扩展库控件都依赖于 dojo,并且它们将 dojo 主题与 XPages 主题结合使用。可能有一种方法可以在控件的所有属性选项卡中将其关闭,但在这种情况下,您自己另外创建一个道场主题可能会更容易。
我觉得创建一个dojo主题是一个问题,我不想在这里真正深入,但我会说有四个默认的dojo主题,它们有点基本。创建自己的主题后,您可以使用以下代码导入 dojo 主题:
<resource dojoTheme="true">
<content-type>text/css</content-type>
<href>/.ibmxspres/dojoroot/dijit/themes/tundra/tundra.css</href>
</resource>
并且还使用
<control>
<name>ViewRoot</name>
<property mode="concat">
<name>styleClass</name>
<value>body</value>
</property>
<property>
<name>styleClass</name>
<value>tundra</value>
</property>
</control>
其中 body 是您自己的 html-body 样式,而 tundra 是 dojo 主题。这将确保 ExtLib 控件至少具有某种样式并且并不总是完全透明,或者具有一些其他不需要的默认样式。
如果您不想编写自己的样式,可以只覆盖几个类。找到这些类可能很困难,但在服务器和客户端都可以找到它们,您可以参考它们。该文件将位于:
..\Notes\Data\domino\js\dojo-1.5.2\dijit\themes
文件中。此外,您可以使用 firebug 或任何其他浏览器的检查元素选项来找出用于该控件的 css 类。我发现没有办法改变命名方案,或者更好地说,创建自己的类并在设计器中设置样式并让它产生任何影响。我发现的唯一选择是覆盖我的 css 中已经给出的类。
我希望这可以帮助任何未来的人。