F# 图形界面编程:绘图、控件开发与应用实践
在 F# 中构建图形界面,由于缺乏专门的可视化设计器,主要有以下四种选择:
1. 手动编写界面代码,就像在浏览器示例中所做的那样。
2. 开发一个能输出 F# 代码的可视化设计器(这是一项艰巨的任务)并使用它。
3. 使用 C# 可视化设计器,然后将 file.Designer.cs 文件中的赋值语句转换为 F# 代码。
4. 利用 .NET 平台的互操作性,使用设计器设计界面,生成 C# 或其他受支持的语言代码,并将 F# 代码作为库使用。
借助现有的设计器和 .NET 互操作性,适合许多图形应用场景,能让程序员利用 F# 强大的数据处理能力为使用高效工具创建的用户界面提供支持。当然,也可以用 F# 代码轻松定义简单的界面。接下来,我们将重点关注图形应用设计中更重要的部分:绘图和控件开发。
绘图应用
在开发图形应用时,若现有的图形控件无法满足需求,就需要学习使用图形系统提供的绘图原语进行绘图。为了理解绘图的工作原理,需要回顾图形应用渲染过程背后的模型,这一模型也是 Windows Forms 和 WPF 的区别所在。
图形应用使用图形系统提供的资源,主要是窗口。窗口是屏幕上的矩形区域,不一定是带有按钮、标题栏等常见元素的顶级窗口。窗口可以嵌套,是传统窗口系统的基本单位。窗口系统负责将事件路由到为每个窗口注册的事件处理回调函数。
窗口可以在其客户区域进行绘图,绘图通过设备上下文(由图形系统提供的对象)执行图形原语来完成。图形系统不会保留发出的图形原语,因此当窗口被遮挡后,被隐藏的部分在重新显示时需要重新绘制。图形系统会向窗口发
超级会员免费看
订阅专栏 解锁全文
5万+

被折叠的 条评论
为什么被折叠?



