Skip to content

窗体功能

twinBASIC 为窗体和窗体处理提供了众多增强功能。

现代图像格式支持

您在 tB 窗体和控件中不再面临极其有限的图像格式选择;不仅位图和图标格式支持这些格式的完整范围,您还可以加载 PNG 图像、JPEG 图像、图元文件(.emf/.wmf)和 SVG 矢量图形(.svg)。

改进的 LoadPicture

此外,LoadPicture 可以直接从字节数组加载所有图像类型,而不需要磁盘上的文件。您可以使用此功能从资源文件或其他来源加载图像。请注意,如果您的项目引用了 stdole2.tlb(大多数项目都这样做),目前您必须将其限定为 Global.LoadPicture 以获得支持字节数组的 tB 自定义绑定。

透明度和 Alpha 混合

Form.TransparencyKey

此新属性指定一种颜色,该颜色对于 z 顺序中其下方的窗口(所有窗口,而不仅仅是您项目中的窗口)将是透明的。设置此属性将导致指定颜色 100% 透明。具有实心 FillStyle 的形状控件是帮助用关键颜色为窗体区域上色的有用工具。

Form.Opacity

这为整个窗体设置 alpha 混合级别。与透明度一样,这适用于其下方的所有窗口。请注意,被 TransparencyKey 颜色覆盖的任何区域将保持 100% 透明。

以下图像显示了具有红色 TransparencyKey 的窗体,使用形状控件定义透明区域,同时为整个窗体指定 75% 的 Opacity

image

其他窗体功能

除了上述功能,窗体还有:

  • DpiScaleX/DpiScaleY 属性来检索当前值
  • .MinWidth.MinHeight.MaxWidth.MaxHeight 属性,因此不需要为此进行子类化
  • Form.TopMost 属性。
  • 控件锚定:控件 x/y/cx/cy 可以设为相对,因此它们会自动随窗体移动/调整大小。例如,如果您将文本框放在右下角,然后检查右侧和底部锚点(除了顶部和左侧),右下角将在窗体调整大小时随窗体调整大小。这节省了大量样板大小调整代码。
  • 控件停靠:控件可以固定在窗体(或容器)的一侧,或设置为填充整个窗体/容器。多个控件可以组合并以停靠位置混合/匹配。

有关控件锚定和控件停靠的更多信息,请参阅锚定和停靠页面

图像控件中的高质量缩放

图像控件现在提供 StretchMode 属性,允许您选择双线性、双三次、Lanczos3 和 Lanczos8 拉伸算法,这些算法远远优于默认拉伸算法。这些使用内置算法,因此不添加额外的依赖项或 API 调用。

DPI 缩放

窗体、用户控件和图片框的 PictureDpiScaling 属性:PictureDpiScaling 属性允许您关闭图像的 DPI 缩放,以便它们以 1:1 显示,而不是允许操作系统拉伸它们。这样做的想法是,您可能希望手动选择不同的位图,而不是应用有限的操作系统拉伸。

twinBASIC及其LOGO版权为作者"韦恩"所有