前言
aardio构建界面有四种方式
- winform
- web.form
- web.kit/web.blink
- htmlayout
HTMLayout的功能特别强大,它相当于使用了HTML和CSS,但是干掉了JS(JS使用aardio语法实现),
相比于使用Webview或Chrome加载页面,HTMLayout占用的内存会少的多。
注意样式的语法和CSS的语法是不太一样的。
官方文档:https://bbs.aardio.com/forum.php?mod=forumdisplay&fid=128
简单示例
1 | import win.ui; |
分离HTML文件
项目中新建html文件夹
其中添加main.html
1 | <html> |
代码中就可以这样写了
1 | import win.ui; |
定时刷新
开发的过程中,为了修改代码后能够及时看到效果,可以用如下方式
1 | winform.setInterval( |
窗口圆角透明
方式1
1 | import win.ui; |
注意这种方式是把某个颜色彻底剔除掉从而变成透明,所以色值要注意两点
- 颜色一定要是界面中不会用到的(这里就是使用的白色-1的值)
- 颜色不能与内部窗口的颜色相差太大,因为窗口衔接的地方的颜色会是中间色,导致去不干净。
页面中一定要设置html的背景,否则会为白色。
1 | html { |
HTMLLayout是不支持overflow: hidden;
的,所以如果两个区域重叠时,内部的也要设置圆角。
1 | #outer { |
方式2
示例代码:1
2
3import win.region.bitmap;
var rgnBitmap = win.region.bitmap("\ui.bmp");
rgnBitmap.updateWindow(winform.hwnd)
参数说明:1
win.region.bitmap( 位图,透明色,容差 )
位图: 该参数可以是位图文件路径、或位图句柄。
透明色:可选参数默认为0也就是黑色,
容差:可选参数,默认为 0x010101,按Blue,Green,Red 的顺序分三组指定透明色容差。
参数一也可以指定一个窗体对象,该窗体应当是无边框窗口
并指定了背景图
。win.region.bitmap()
可获取背景图并根据透明色
创建对应的绘图区域,
示例代码:
1 | import win.region.bitmap; |
头部拖动
设置这个节点的behavior行为为windowCommand窗体消息(这个是aardio内置好的)
1 | #header{ |
在html中定义这个节点的功能
1 | <html> |
window-caption是aardio内置的htmlayout消息封装, 直接用即可
注意要引用
1 | import web.layout.behavior.windowCommand; |
禁止拖动的地方
1 | -command:disabled; |
点击事件
窗口按钮自定义时要注意把窗口外观
中的边框
设置为none
1 | import win.ui; |
html
1 | <html> |
要想我们的DIV响应事件
添加behavior: 'clickable';
即可。
所有事件说明:https://bbs.aardio.com/forum.php?mod=viewthread&tid=7156
悬浮替换图片
1 | #skin{ |
Flex布局
htmllayout是不支持flex布局的,但是他有一套类似Flex布局的机制。
https://bbs.aardio.com/forum.php?mod=viewthread&tid=7159
模板语法
如果我们要实现列表数据就必须要使用模板语法
1 | import win.ui; |
页面中直接使用这样的模板语法是生效的,但是如果是加载的html文件就不生效了。
我们只需要把文件后缀改为aardio即可
这样语法高亮和代码提示就失效了,我们可以把aardio的代码提示设置为html即可。
示例
1 | import win.ui; |
加载页面时传值
1 | wbLayout.go("\html\main.aardio",{ |
模板中取值
1 | "a"] = request.get[ |
二维码示例
首先在aardio工程中添加一个模板文件,例如 /images/qrcode.aardio
,代码如下:
1 | import qrencode.bitmap; |
页面中引用传值
1 | wbLayout.html = /** |