B4X编程语言:B4J控件的样式设置属性(Style/StyleClasses)
B4J可以通过B4J控件的Style或StyleClasses属性,使用JavaFX CSS的属性和方法来设置控件的样式和显示效果。
一、Style属性
设置或返回控件的外观样式。值类型是String。
B4J控件的Style属性可以设置控件的背景、文本、边框、内部布局以及整体外观效果,它是由一条或多条JavaFX CSS的属性语句组成的单行字符串。每条语句之间用分号分割。例如:
Label1.Style=“-fx-background-color: lightgray;” 或
Label1.Style="-fx-background-color: lightgray;-fx-border-width:2;-fx-border-color:cyan;"
如果要获取或查看控件的Style属性,可以使用如下语句:
Dim Style1 As String=Label1.Style
Log(Style1)
二、StyleClasses属性
设置或返回控件的外观样式类名称列表。值类型是List。
B4J控件的StyleClasses属性通过使用CSS样式表来为特定控件设定特定样式。使用CSS级联样式表,可以将不同类型的样式添加到一个文件中,方便维护。
使用StyleClasses属性设置控件样式:
1、编辑CSS样式表,添加控件样式。
假设我们有一个名称为Style.css的样式表(没有可以新建一个),使用记事本打开,添加样式代码(假设选择器为lb1,通用选择器为Label),示例如下:
.lb1 ,Label{
-fx-font-family: Arial;
-fx-font-size: 16pt;
-fx-font-weight: bolder;
-fx-background-color: #00ffff;
-fx-background-radius: 8;
-fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.6) , 3, 0.0 , 0 , 1 );
}
2、将CSS样式表保存到项目的Files文件夹。
3、如果是B4XPage项目,则在控件所在页面的B4XPage_Created例程导入样式表。
form = B4XPages.GetNativeParent(Me)
form.Stylesheets.Add(File.GetUri(File.DirAssets, "s.css"))
如果是其它项目,则在Main主模块的AppStart例程导入样式表。
MainForm.Stylesheets.Add(File.GetUri(File.DirAssets, "s.css"))
4、将该样式选择器名称添加到想使用该样式的控件的样式类名称列表。
Button1.StyleClasses.Add("lb1")
此设置的效果是:该页面所有Label控件和Button1控件将使用该样式。
备注:
如果CSS表使用了Label这样的通用选择器名称,则只需在页面导入CSS文件,无需使用StyleClasses,该页面所有Label都将使用这个样式。
如果某个Label控件不想使用通用样式,可使用Style属性设置。
如果同页面其它控件想使用该样式,也可以将选择器名称lb1添加到其样式类名称列表中:
TextField1.StyleClasses.Add("lb1")。