NanUI

系统窗体样式

概述

系统窗体样式是 Formium 窗体的默认样式,它有两种形式,一种与 Windows Form 窗体的样式一致,包括标题栏、最大化、最小化、关闭按钮。另一种是移除了系统默认的标题栏和命令按钮区域,但保留系统边框。这两种样式通过属性 TitleBar 来控制。

使用 WindowStyleBuilder 的扩展方法 UseSystemForm 来启用系统窗体样式,该方法的返回值是 SystemFormStyle 类型,该类型继承自 FormStyle 类,因此您可以使用 FormStyle 类的属性来设置窗体的基础样式,并使用 SystemFormStyle 类的属性来设置系统窗体样式特有的样式属性。

protected override FormStyle ConfigureWindowStyle(WindowStyleBuilder builder)
{
    var style = builder.UseSystemForm();
    return style
}

系统窗体样式的另一个属性 BackdropType 用于设置窗体背景的渲染类型。默认情况下 CEF 作为独立的子窗体嵌入到 Formium 的 Windows Form 区域,但在 Windows 系统提供了多种窗体背景材质,如果使用子窗体的方式放置浏览器,那么浏览器会覆盖这些材质特效,如果要启用这些材质特性,则需要使用 CEF 的离屏渲染功能,将网页在内存中渲染成带 alpha 通道的位图,再由 WinFormium 将图片渲染到窗体背景上,从而实现窗体背景与网页内容的混合渲染。BackdropType 属性用于设置窗体的渲染类型。

下面的文章将详细介绍这两个系统窗体样式的特有属性。

TitleBar 属性

保留标题栏和命令控制区域的系统窗体样式

protected override FormStyle ConfigureWindowStyle(WindowStyleBuilder builder)
{
    var style = builder.UseSystemForm();
    style.TitleBar = true;
    return style
}

移除标题栏和命令控制区域的系统窗体样式

protected override FormStyle ConfigureWindowStyle(WindowStyleBuilder builder)
{
    var style = builder.UseSystemForm();
    style.TitleBar = false;
    return style
}

以下图片示例分别展示了系统窗体样式在开启标题栏和关闭标题栏两种不同属性之间的区别。

系统窗体样式

至于如何控制无标题栏窗体的大小和位置,请参考《无标题栏窗体》

BackdropType 属性[^*]

BackdropType 属性用于设置窗体的渲染类型,不同属性所受操作系统的支持不同,如果没有特别指出的,最低支持 Windows 7 service pack 1 系统。目前 BackdropType 属性支持以下几种类型:

另请参阅