//simpleWindow3 渐变标题栏 import win.ui.layered; import win.ui.simpleWindow; import gdip.lineBrush; namespace win.ui; class simpleWindow3{ ctor( winform,fontSize,width=33,height=27,theight,background=0xCC000000,foreground=0 ){ if( theight === null ) theight = height *2; var frmTitleBar = winform.add({{cls="custom";text="custom";left=0;top=0;marginRight=0;bottom=theight;dl=1;dr=1;dt=1;z=1}})[1]; frmTitleBar.orphanWindow(); var layered = ..win.ui.layered(frmTitleBar); if(layered) { this = ..win.ui.simpleWindow(frmTitleBar,fontSize,width,height); this.background = background; this.foreground = foreground; layered.onDrawBackground = function(graphics,l,t,w,h){ var brush = ..gdip.lineBrush(::RECTF(0,0,w,h),this.background,this.foreground,1) graphics.fillRectangle(brush,0,0,w,h) brush.delete() } } else { frmTitleBar.close(); this = ..win.ui.simpleWindow(winform,fontSize,width,height,theight); } this.skin(..win.ui.simpleWindow.lightStyle) }; } /**intellisense() win.ui.simpleWindow3 = 简单初始化无边框窗口,并创建渐变背景的标题栏,\n标题栏使用分层窗口实现,并使用 orphanWindow 悬浮在父窗口上面,\n标题栏上添加最小化、最大化、关闭窗口等按钮,\n并自动添加拖动边框、窗口阴影、设置窗口最大化范围等,\n可以在窗体设计器的窗口属性中禁用最大化、最小化按钮\n禁用最大化按钮以后不添加用于拖动调整窗体大小的边框 win.ui.simpleWindow3(.(窗体对象,字体大小,按钮宽度,按钮高度,标题栏高度,背景色,前景色) = 为参数@1指定的无边框窗口添加渐变背景的标题栏,\n可选使用参数@2指定标题栏按钮字体大小,以像素为单位,\n可选用参数@3,@4指定关闭等按钮宽度,高度\n标题栏高度为可选参数,\n背景色、前景色用于指定渐变顶部、底部颜色,都是可选参数 win.ui.simpleWindow3() = !win_ui_simpleWindow3. !win_ui_simpleWindow3.skin(style) = @.skin(\n background = { \n hover = 0xff99ffcc;\n active = 0xffff6666; \n default = 0x00000000; \n }\n color = { \n hover = 0xff666666;\n active = 0xffffffff; \n default = 0xffffffff; __/*自定义标题栏关闭、最大化、最小化按钮样式\n用法与plus控件的skin函数相同*/\n }\n) !win_ui_simpleWindow3.titlebarMin = 标题栏最小化按钮,plus控件。\n如果窗体设置了禁用最小化按钮则不创建此控件。\n!ui_ctrl_plus. !win_ui_simpleWindow3.titlebarMax = 标题栏最大化按钮,plus控件。\n如果窗体设置了禁用最大化按钮则不创建此控件,并且不允许拖动边框改变窗口大小。\n!ui_ctrl_plus. !win_ui_simpleWindow3.titlebarClose = 标题栏关闭按钮,plus控件。\n调用此控件的 skin 函数可单独修改关闭按钮的样式,\n所有界面组件的 skin 函数的都是用于 plus 控件,用法都一样。\n!ui_ctrl_plus. !win_ui_simpleWindow3.titlebar = 标题栏,static控件\n!static. !win_ui_simpleWindow._form = 标题栏窗口。\n!winform. !win_ui_simpleWindow.targetForm = 要控制的目标窗口。\n!winform. !win_ui_simpleWindow3.targetForm = 要控制的目标窗口。\n!winform. !win_ui_simpleWindow3.background = 可用 ARGB 格式颜色数值指定窗口线性渐变使用的顶部颜色 !win_ui_simpleWindow3.foreground = 可用 ARGB 格式颜色数值指定窗口线性渐变使用的底部颜色 end intellisense**/