XAF之Window, Frame和Template

本文介绍了XAF中用于构建用户界面的核心组件——Window、Frame及Template的作用和区别。详细解释了Template如何定义控件位置,以及Window和Frame如何承载视图功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         XAF自动产生的窗体由两个对象定义:一个称为Template的control和一个抽象实体Window。而查询窗体和ListView由Template和Frame组合来表示。Window, Frame和Template的区别是:Window和Frame不包含控件的位置信息而仅含有XAF程序的功能信息。Template包含了控件的位置信息,决定了Window和Frame的外观。

Template

         Template是实现了IFrameTemplate和IWindowTemplate接口的控件(即Template is Control)。而IWindowTemplate继承自IFrameTemplate,和IFrameTemplate相比,IWindowTemplate提供了额外的状态栏信息存储,Template名称和判断是否可改变大小的标记。这使得IWindowTemplate的实现者表现得像一个标准的Form。内建的Template有(WinForm下)MainForm, DetailViewForm, PopupForm, LookupForm,LookupControlTemplate, NestedFrameTemplate;(ASP.NET下)Default,DefaultVertical, Dialog, NestedFrameControl, Login, Error。

内建的Template已经包含了诸如ActionContainer和View等的位置信息,使我们不必从头开始制作UI,比如,我们设定一个SimpleAction的Category为”RecordEdit”,该Action就在RecordEdit的ActionContainer中显示。


Window和Frame

         Frame是Window的父类。Window和Frame的区别是Window是独立的UI元素,而Frame有一个父亲。如mainform和detail form用Window类定义,而下拉窗口由Frame类定义。

Frame和Window的功能是:

1.      充当View的位置

Window本身并没什么意义,在XAF程序中主要是利用Window来访问其View,利用Window的属性Frame.View访问View。另外,你可能需要将某个View设置到Window,此时使用Frame.SetView方法。

2.      当创建Frame或Window允许执行自定义的一些操作

当创建Frame或Window时,会加载所有合适的Controller并在它们的Frame.Controllers集合中注册,并且在创建/删除Window或Frame时提供了事件允许执行某些操作。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值