在Duilib中我们可以使用Default属性设置某一类控件的全局样式,而某一些Duilib扩展库也支持使用Style自定样式,并且适配不同的控件。

1 使用Default设置某类控件的全局样式

在官方duilib中可以通过使用Default来设置某类控件的默认的全局样式,比如说设置按钮的全局样式,可以通过

<Default name="Button" value="" />

value中的数值可以这么写

<Default name="Button" value="bordersize="1" borderround="5,5" bordercolor="#cccccc" textcolor="#FFFFFFFF" bkcolor="#FF099985" hotbkcolor="#FF044C42" pushedbkcolor="#FF044C42" font="1" padding="0,5,0,5"" />

这里需要注意的是在value中,如果之前的属性是

bordersize="1"

那么需要将双引号修改为",修改之后也就是

bordersize=&quot;1&quot;

Default属性可以将软件中的控件设置为统一的样式,而不能单独的为某一个控件设置自定义样式

2 使用Style自定义样式

基于官方duilib的扩展库比如DuiLib_Ultimate都可以通过Style属性声明一个单独的样式,然后不同的控件可以选择不同的Style,

比如说有一个Style样式是

<Style name="btn_yes_style" value="bordersize="1" borderround="5,5" bordercolor="#cccccc" textcolor="#FFFFFFFF" bkcolor="#FF099985" hotbkcolor="#FF044C42" pushedbkcolor="#FF044C42" font="1" padding="0,5,0,5"" />

然后我要将这个样式设置给某一个Button,可以使用下面的代码进行设置

<Button name="TabCameraSetting_Yes_Btn" style="btn_yes_style" width="80" height="28" text="确定" />

Button显示如下

Duilib – 使用Default设置控件默认的全局样式以及使用Style自定义样式-StubbornHuang Blog

一个控件也可以同时使用两个Style样式,比如

<Style name="btn_yes_style" value="bordersize="1" borderround="5,5" bordercolor="#cccccc" textcolor="#FFFFFFFF" bkcolor="#FF099985" hotbkcolor="#FF044C42" pushedbkcolor="#FF044C42" font="1" padding="0,5,0,5"" />

<Style name="btn_yes_style2" value="bordersize="10"" />

<Button name="TabCameraSetting_Yes_Btn" style="btn_yes_style btn_yes_style2" width="80" height="28" text="确定" />

上面的Button会同时使用btn_yes_style和btn_yes_style2,并且btn_yes_style2的样式会覆盖btn_yes_style对应属性也就是bordersize的值。