现在的版本提供了uniTreeMenu,可以制作流行的菜单树,如下图:

定制uniGUI TreeMenu外观_uniGUI

功能方面还需要进一步增强,我遇到进一步定制字体、字号、及行高的问题,解决方法如下:

/*设置TreeMenu字体*/
.x-treelist-nav .x-treelist-item-text {
     font-family:"微软雅黑";
     font-size: 14px;
}
/*设置TreeMenu行高*/
.x-treelist-nav .x-treelist-item-text {
     line-height: 40px;
}
 .x-treelist-nav .x-treelist-item-icon:before, .x-treelist-nav .x-treelist-item-tool:before, .x-treelist-nav .x-treelist-item-expander {
     line-height: 40px;
}

在uniServerModule的CustomCSS中加入上面的代码。

这个方法在uniGUI 1.9.1534中正常,但是这样定义,是定义全局的,也就是说,所有的TreeMenu或者用css中定义的属性内容的其他控件也会受到影响。

如果只想为指定的TreeMenu控件用上面的内容呢?现在,我们改变一下定义,加上自己的前缀:

/*设置TreeMenu字体*/
.kls-treemenu .x-treelist-nav .x-treelist-item-text {
     font-family:"微软雅黑";
     font-size: 14px;
}
/*设置TreeMenu行高*/
.kls-treemenu .x-treelist-nav .x-treelist-item-text {
     line-height: 40px;
}
.kls-treemenu .x-treelist-nav .x-treelist-item-icon:before, .x-treelist-nav .x-treelist-item-tool:before, .x-treelist-nav .x-treelist-item-expander {
     line-height: 40px;
}

看上面的代码,我加了.kls-treemenu,现在,我们为主窗口的TreeMenu指定使用这里具体定义的css:

定制uniGUI TreeMenu外观_uniGUI_02

 

 uniTreeMenu1.LayoutConfig.ComponentCls:='kls-treemenu',注意,这里没有“.”,即这里没有点。我就犯了错误,还跑问朋友太叔,怎么回事?

期待官方的改进,不用这样来定义TreeMenu的外观。

 

当菜单项目多时,没有滚动条,用下面的方法:

/*设置TreeMenu字体*/
.kls-treemenu .x-treelist-nav .x-treelist-item-text {
     font-family:"微软雅黑";
     font-size: 14px;
     /*显示滚动条*/
     overflow-y:auto
}

朋友说用代码也可以实现:

定制uniGUI TreeMenu外观_编程_03

 

 在火车上发来的截图,我还没有试,不过,他说这样,还可以变成控件的属性。是个好方法,先记录到这里了。

 默认情况下,点击一级菜单的文字,是不显示二级菜单的,只能点击右边向下的箭头。用户提出这样不好,那怎么一点一级就显示二级呢?朋友告诉我,这个属性可以控制:

定制uniGUI TreeMenu外观_编程_04

 

  一试,果真好用,感谢朋友支持!