TMlSkinForm
窗体皮肤的核心组件。放到窗体上后接管窗体的背景、边框和标题栏绘制,是使用 MlSkin 的起点。
用法要点
- 一个窗体放一个即可,放上去后窗体立即变为 MlSkin 外观。
- 背景用纯色还是图片由
Style决定:ssColor用Color,ssPicture用CustomPicture指定的图片,图片的铺法由FillStyle控制。 - 标题栏由它绘制,高度用
TitleHeight,颜色用TitlerColor;标题栏上的 TMlSkinNCButton、TMlSkinNCLabel 等控件都依赖它。 - 圆角有两种:
RoundCorner自己画圆角,NativeRoundCorner交给 Windows 11 的系统圆角。 ShadowEnabled开启窗体自绘阴影(v5.7 新增),配合ShadowColor、ShadowSize、ShadowAlpha调整效果。- 要做异形窗体时,用
ImageBorder指定一圈边框图片。
示例
摘自 Demo:MlSkin.Demo.360云盘.v3.0(窗体文件 .dfm)
object mlsknfrm1: TMlSkinForm
FlatFrame = True
TitleHeight = 56
TitlerColor = 15434544
Color = clWhite
RoundWindow = False
FramWidth = 0
ActiveGradient = False
MainMenu.Font.Charset = DEFAULT_CHARSET
MainMenu.Font.Color = clWindowText
MainMenu.Font.Height = -11
MainMenu.Font.Name = 'Tahoma'
MainMenu.Font.Style = []
MainMenu.Pos.Align = caLeft
MainMenu.Pos.XValue = 5
MainMenu.Pos.YValue = 5
MainMenu.Pos.UseDefault = False
MainMenu.Pictures.Active = True
MainMenu.Pictures.Image = 'MlSkinFlatBtn'
MainMenu.Pictures.Normal = 0
属性 29
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
About | TMlAboutInfo | — | 设计期属性。在对象检查器里双击会弹出 MlSkin 的关于窗口,显示组件版本信息;运行时没有作用,也不会保存到 dfm。 |
FlatFrame | Boolean | False | 扁平边框。打开后窗体边框画成单线条的扁平样式,不带立体感。 |
TitleHeight | Integer | 27 | 标题栏高度(像素)。标题栏上的按钮、文字等控件都在这个高度范围内排布。 |
TitlerColor | TColor | $00FFC446 | 标题栏颜色。Style 为 ssColor 时生效;用图片背景时标题栏由图片决定。 |
Color | TColor | $00F2ECE1 | 窗体背景色。Style 为 ssColor 时作为整个窗体的底色。 |
Options | TMlSkinFormOptions | — | 窗体行为选项,展开后可设置:最小化到任务栏、是否在任务栏隐藏、拖动窗体时是否显示完整内容。 |
RoundWindow | Boolean | True | 圆角窗口开关。打开后窗体四角为圆角,圆角大小由 RoundCorner 决定。 |
RoundCorner | Integer | 2 | 圆角半径(像素)。数值越大角越圆,0 为直角。 |
NativeRoundCorner | Boolean | True | 使用系统圆角。打开后交给 Windows 11 绘制圆角,边缘抗锯齿由系统处理;在旧版 Windows 上无效,需改用 RoundCorner。 |
NativeBorderColor | TColor | clDefault | 系统边框颜色,配合 NativeRoundCorner 使用,设定 Windows 11 绘制的窗体边框线颜色。 |
FramWidth | Integer | 2 | 边框宽度(像素)。 |
FrameColor | TColor | clBlack | 边框颜色。 |
FillStyle | TMlFillStyle | mfsBlur | 背景图片的铺法:mfsStretch 拉伸铺满、mfsTile 平铺、mfs9Block 九宫格拉伸(四角不变形)、mfsBlur 模糊填充。 |
HitTestWidth | Integer | 5 | 窗体边缘用于拉伸改变大小的响应宽度(像素)。数值太小不容易拖到,太大会影响靠边的控件。 |
EraseBackGround | Boolean | False | 是否擦除背景。窗体上有闪烁时可以调整这个开关。 |
GradientHeight | Integer | 168 | 标题栏渐变的高度(像素),配合 ActiveGradient 使用。 |
CustomPicture | TMlResID | — | 窗体背景图片,填资源管理器里的图片 ID 或图片文件路径;Style 要设为 ssPicture 才会显示。 |
Style | TMlSkinStyle | ssColor | 皮肤方式:ssColor 用纯色(Color、TitlerColor),ssPicture 用图片(CustomPicture)。切换皮肤通常就是改这个属性和对应的颜色或图片。 |
ActiveGradient | Boolean | True | 标题栏渐变开关。打开后标题栏颜色按 GradientHeight 的高度做渐变。 |
SkinRes | TMlSkinRes | — | 关联的图片资源组件(TMlSkinRes)。指定后,窗体和上面控件用到的图片 ID 都从这个资源里取。 |
ImageBorder | TmlFormLayerBorder | — | 图片边框设置,展开后可指定边框图片、各边尺寸和拉伸方式,用来做异形窗体。 |
MainMenu | TMlSkinMainMenu | — | 关联的皮肤主菜单。指定后菜单由 MlSkin 绘制,并可显示在标题栏上。 |
DoubleFrame | Boolean | True | 双层边框。打开后在边框内侧再画一条线,常用来做浅色内描边。 |
KeepTitlerColor | Boolean | False | 换肤时保持标题栏颜色不变,即使背景图片或皮肤颜色变化也不改标题栏颜色。 |
KeepFrameColor | Boolean | False | 换肤时保持边框颜色不变。 |
ShadowEnabled | Boolean | False | 窗体自绘阴影开关(v5.7 新增),打开后窗体四周画出阴影,不依赖系统阴影。 |
ShadowColor | TColor | clBlack | 阴影颜色。 |
ShadowSize | Integer | 20 | 阴影大小(像素),也就是阴影向外扩散的宽度。 |
ShadowAlpha | Byte | 90 | 阴影透明度,0 为完全透明、255 为不透明。 |
事件 1
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Changed | TNotifyEvent | — | 皮肤设置改变后触发,可用来同步更新自己绘制的界面部分。 |
本页只列出 MlSkin 新增的属性和事件;Align、Anchors、Font、OnClick 等标准 VCL 属性同样可用,用法与原生控件一致。