首先请在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从  .\Applications\xxxx(Apllication)\Clients\Form\Functions\yyyy(Function)\ Views\Public(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.EasyWinForm:Zone

LiggEasyWinApp-103-Ligg.EasyWinForm:View的更多相关文章

  1. Ligg.EasyWinApp-10300-Ligg.EasyWinForm:View的配置

    View的配置文件,  路径如下: .\Applications\xxxx(Apllication)\Clients\Form\Functions\yyyy(Function)\ Views\zzzz ...

  2. Ligg.EasyWinApp-100-Ligg.EasyWinForm:一款Winform应用编程框架和UI库介绍

        本项目是一个Winform应用编程框架和UI库.通过这个该框架,不需任何代码,通过XML配置文件,搭建任意复杂的Windows应用界面,以类似Execel公式的方式实现基本的过程控制(赋值.条 ...

  3. Ligg.EasyWinApp-102-Ligg.EasyWinForm:Function--ControlBox、Tray、Resize、Menu

    首先请在VS里打开下面的文件,我们将对源码分段进行说明: Function(功能):一个应用的功能界面,一个应用对应多个Function(功能):如某应用可分为管理员界面.用户界面. 首先我们来看一下 ...

  4. iOS应用架构谈(二):View层的组织和调用方案(上)

    OS客户端应用架构看似简单,但实际上要考虑的事情不少.本文作者将以系列文章的形式来回答iOS应用架构中的种种问题,本文是其中的第二篇,主要讲View层的组织和调用方案.上篇主要讲View层的代码结构. ...

  5. iOS应用架构谈(二):View层的组织和调用方案(中)

    iOS客户端应用架构看似简单,但实际上要考虑的事情不少.本文作者将以系列文章的形式来回答iOS应用架构中的种种问题,本文是其中的第二篇,主要讲View层的组织和调用方案.中篇主要讨论MVC.MVCS. ...

  6. Android进阶笔记05:View、SurfaceView 和GLSurfaceView 的关系和区别

    1.  Android游戏当中主要的除了控制类外就是显示类View.SurfaceView是从View基类中派生出来的显示类.android游戏开发中常用的三种视图是:    (1) view.Sur ...

  7. 自定义控件(视图)1期笔记01:View 和 ViewGroup

    1.View 和 ViewGroup 图解关系: 2. View 和 ViewGroup 关系和作用: (1) 关系: • 继承关系 • 组合关系 (2) 作用:      • View的作用: 提供 ...

  8. PureMVC(JS版)源码解析(九):View类

    在讲解View类之前,我们先回顾一下PureMVC的模块划分:      在PureMVC中M.V.C三部分由三个单例类管理,分别是Model/View/Controller.PureMVC中另外一个 ...

  9. xUtils3源码分析(一):view的绑定

    概述 xUtils3是国人开发的一款功能丰富的Android快速开发框架,值得研究下.zip包下载:[ZIP]xutils主要分以下几个模块 视图绑定模块 网络请求模块 数据库模块 图片加载模块 我们 ...

随机推荐

  1. Python之HTTP静态Web服务器开发

    众所周知,Http协议是基于Tcp协议的基础上产生的浏览器到服务器的通信协议 ,其根本原理也是通过socket进行通信. 使用HTTP协议通信,需要注意其返回的响应报文格式不能有任何问题. 响应报文, ...

  2. Java修炼——容器HashMap用法

    直接上代码,容器集合之间的关系在后面我会继续详细分析,这次先看HashMap用法 HashMap的方法都在代码中有解释.有需要的可以仔细看看 package com.bjsxt.map; import ...

  3. 移动开发在路上-- IOS移动开发 五 网络请求封装

    接着上次的讲,这次我们讲 网络请求的封装  打开创建的项目,让我们一起来继续完成他, 上次我们说到GET请求地址的拼接: 我们接着上次的继续完善: 下边我们要定义的是 block //定义block ...

  4. Python元组tuple(不可变)

    Python元组Tuple(不可变): 元组的特点: 1.元组的初始化: tuple = (1, )  #元组只有一个元素的话,初始化时要加,否则当做元素的普通变量类型处理 tuple = (1, 2 ...

  5. Tesseract-OCR 字体库下载地址

    https://github.com/tesseract-ocr/tesseract/wiki/Data-Files

  6. BIOS安全设置

    1.开机按F2进入BIOS 2.进入 Security 界面 3.Set user password 用户密码 开机密码 设置为123456 4.Set supervisor password 进BI ...

  7. 【玩转SpringBoot】看似复杂的Environment其实很简单

    喜欢写代码,讨厌配环境 我相信这十个字的小标题代表了大多数码农的心声. 十年前读大学时,学校开设了C语言还有C++.但是学习这两种语言,对于新手来说非常没有成就感. 于是我就在校门口买个光盘,装个VS ...

  8. 中文分词接口api,采用结巴分词PHP版中文分词接口

    中文分词,分词就是将连续的字序列按照一定的规范重新组合成词序列的过程.我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字.句和段能通过明显的分界符来简单划界,唯独词没有一个形式上 ...

  9. ElasticSearch 时间格式

    "datetime": { "type": "date", "format": "yyyy-MM-dd HH: ...

  10. echart的legend不显示问题

    legend的data与series的name 两者必须同时存在,且数量和文字内容必须一致.