LiggEasyWinApp-103-Ligg.EasyWinForm:View

首先请在VS里打开下面的文件,我们将对源码分段进行说明:

View(视图):一个Function(功能)对应多个View(视图),本框架用View(视图)实现多窗体(MDI)的效果。 一个View(视图)由多个Area(域)组成,Area(域)是FrameForm上各个Region上的一个Panel。Area(域)下面再包含Zone(区)。

View的配置

    请看Ligg.EasyWinApp-103-00-Ligg.EasyWinForm:View的配置

 

View的初始化

对于MultipleView

    首先通过MergeViewItems从  .Applicationsxxxx(Apllication)ClientsFormFunctionsyyyy(Function) ViewsPublic(View).xml读取Public View的数据到_layoutElemets。然后Render,最后再设置Public View状态为Unchecked。当点击ViewMenuItem的时候, Checked的View会被隐藏;Public View是总是显示的View,其他View如果不是当前View,会被隐藏,所以Public View的状态永远是Unchecked。

对于SingleView

    会把Zone的zoneLayoutElement“包装”成一条Public View 的数据,追加到layoutElemets,然后Render。

     对于SingleView,不存在显示隐藏View的问题,所以也不用设置状态。

 

View的显示和隐藏

    前文讲过:ViewMenuItem点击时会触发ViewMenuItemClickHandler,显示当前View 并隐藏前一个View。我们现在来看代码:

 

    对于Simple类型的菜单项,如果已经Render过的View,则显示当前的View的ContentArea和ViewMenuArea,再隐藏前一个View的的ContentArea和ViewMenuArea;如果是如果没有Render过的View,则先读取、Render,再隐藏前一个View的ContentArea和ViewMenuArea。

 

    对于Customized类型的菜单项,如果已经Render过的View,则显示当前的View的ContentArea,再隐藏前一个View的的ContentArea;如果是如果没有Render过的View,则先读取、Render,再隐藏前一个View的ContentArea。

Zone的控件如何生成、显示以及控件的动作,请看下一章节文档。

LiggEasyWinApp-104-Ligg.EasyWinFormZone

原文地址:https://www.cnblogs.com/liggin2019/p/11963127.html