XmContainer与XmScrolledWindow颜色资源配置咨询
Motif组件样式配置问题:XmScrolledWindow与XmContainer的边框及视觉树控制
问题说明
组件层级结构为:XmScrolledWindow -> XmContainer,当前存在两个资源控制疑问:
- a) 当滚动条显示时,环绕
XmContainer的边框对应的控制资源,无法确定该边框属于XmContainer还是XmScrolledWindow; - b)
XmContainer的视觉树部分对应的资源配置项。
上述区域在示例中显示为默认黄色,需要单独修改这两部分的样式。
已使用的资源配置
*background: #EEEE44 *topShadowColor: #CFE0ED *bottomShadowColor: #6B8BA6 ! --- Labels (widget + gadget) ------------------------------ *XmLabel*background: #AFC6D9 *XmLabel*topShadowColor: #CFE0ED *XmLabel*bottomShadowColor: #6B8BA6 *XmLabelGadget*background: #AFC6D9 *XmLabelGadget*topShadowColor: #CFE0ED *XmLabelGadget*bottomShadowColor: #6B8BA6 ! --- PushButtons (widget + gadget) ------------------------------ *XmPushButton*background: #AFC6D9 *XmPushButton*topShadowColor: #CFE0ED *XmPushButton*bottomShadowColor: #6B8BA6 *XmPushButtonGadget*background: #AFC6D9 *XmPushButtonGadget*topShadowColor: #CFE0ED *XmPushButtonGadget*bottomShadowColor: #6B8BA6 ! --- Button geometry tuning ------------------------------------- *XmPushButton.marginWidth: 9 *XmPushButton.marginHeight: 5 *XmPushButton.shadowThickness: 2 *XmPushButton.highlightThickness: 2 *XmPushButtonGadget.marginWidth: 9 *XmPushButtonGadget.marginHeight: 5 *XmPushButtonGadget.shadowThickness: 2 *XmPushButtonGadget.highlightThickness:2 ! --- RowColumn (menus, button bars, option boxes) --------------- *XmRowColumn*background: #AFC6D9 *XmRowColumn*topShadowColor: #CFE0ED *XmRowColumn*bottomShadowColor: #6B8BA6 *XmRowColumnGadget*background: #AFC6D9 *XmRowColumnGadget*topShadowColor: #CFE0ED *XmRowColumnGadget*bottomShadowColor: #6B8BA6 ! --- Container -------------------------------------------------- *XmScrolledWindow*XmContainer*background: #F2F6F9 *XmScrolledWindow*XmIconGadget*background: #F2F6F9 *XmScrolledWindow*XmClipWindow*XmDrawingArea*background: #F2F6F9 *XmScrolledWindow*XmClipWindow*background: #F2F6F9 *XmScrolledWindow*XmClipwindow*XmContainer*XmPushButtonGadget*background: #F2F6F9 *XmScrolledWindow*XmClipWindow*XmContainer*background: #F2F6F9 *XmScrolledWindow*XmClipwindow*XmContainer*XmIconGadget*background: #F2F6F9 *XmContainer*background: #F2F6F9 *XmIconGadget*background: #F2F6F9 *XmDrawingArea*background: #F2F6F9 *XmClipWindow*background: #F2F6F9 *XmPushButtonGadget*background: #F2F6F9 ! --- ScrolledWindow & Container balance ------------------------- ! Light field inside the container, blue-steel frame & scrolls *XmScrolledWindow*background: #AFC6D9 *XmScrolledWindow*XmContainer.background: #F2F6F9 *XmScrolledWindow*XmDrawingArea.background: #F2F6F9 *XmScrolledWindow*borderColor: #AFC6D9 ! Scrollbars (blue-steel tone) *XmScrollBar*background: #AFC6D9 *XmScrollBar*troughColor: #AFC6D9 *XmScrollBar*topShadowColor: #CFE0ED *XmScrollBar*bottomShadowColor: #6B8BA6 *XmScrollBar*foreground: #476A90 ! Ensure dynamically created ones match too *XmScrolledWindow*XmScrollBar*background: #AFC6D9 *XmScrolledWindow*XmScrollBar*troughColor: #AFC6D9
解决方案
问题a:环绕XmContainer的边框控制
该边框由XmScrolledWindow的视口边框和XmContainer自身边框共同组成,分别配置即可:
- 调整XmScrolledWindow视口边框:
! 设置视口边框宽度和颜色 *XmScrolledWindow.viewportBorderWidth: 1 *XmScrolledWindow.viewportBorderColor: #你的目标颜色 - 调整XmContainer自身边框:
! 若不需要容器自身边框可设为0,否则设置颜色 *XmContainer.borderWidth: 0 *XmContainer.borderColor: #你的目标颜色
问题b:XmContainer视觉树资源控制
视觉树部分对应XmContainer内部的XmClipWindow和绘制区域,补充以下配置覆盖默认黄色:
! 覆盖视觉树相关背景色 *XmContainer*XmClipWindow*background: #你的目标颜色 *XmContainer*XmDrawingArea*background: #你的目标颜色 ! 适配动态生成的组件层级 *XmScrolledWindow*XmContainer*XmClipWindow*background: #你的目标颜色
内容的提问来源于stack exchange,提问作者M.E.
相关产品推荐
相关产品推荐

