标题: 使用 Buffered Paint API 绘制带有淡入淡出动画的控件 [打印本页] 作者: 一给 时间: 2022-9-20 02:05 标题: 使用 Buffered Paint API 绘制带有淡入淡出动画的控件 使用 Buffered Paint API 绘制带有淡入淡出动画的控件
发表于2011 年 10 月 23 日 Windows 窗体提供了许多机制来构建与操作系统风格相匹配的专业自定义 UI 控件;通过结合视觉风格渲染器、系统颜色/画笔、ControlPaint类等,可以在用户代码中重现大多数标准 Windows 控件。
然而,在托管代码中很难重新创建内置控件的一个方面:从 Windows Vista 开始,许多控件(例如Button、ComboBox、TextBox等)在状态之间转换时使用淡入淡出动画,例如作为焦点,鼠标悬停和按钮按下。在内部,这些动画由缓冲的绘制 API(uxtheme.dll的一部分,负责视觉样式的库)处理。
大多数开发人员会满足于瞬时的视觉状态变化,但对于受过训练的眼睛来说,缺乏平滑过渡确实可以使自定义控件从内置控件中脱颖而出。好消息是,虽然没有用于缓冲绘画的托管 API,但使用 PInvoke 相对容易利用。
缓冲绘画 API - 基础知识