自己动手写UI库——引入ExtJs(布局)
第一:
|
Component类代码如下所示:
|
|
public class Component
{
public Component()
{
}
private string id;
public string Id
{
get
{
return id;
}
internal set
{
id = value;
}
}
private string region;
public string Region
{
get
{
return region;
}
set
{
var str = string.Format("Ext.getCmp('{0}').setRegion('{1}'); ", this.Id, value);
RenderContext.ExecScript(str);
region = value;
}
}
private int width;
public int Width
{
get
{
return width;
}
set
{
var str = string.Format("Ext.getCmp('{0}').setWidth({1}); ", this.Id, value);
RenderContext.ExecScript(str);
width = value;
}
}
private int height;
public int Height
{
get
{
return height;
}
set
{
var str = string.Format("Ext.getCmp('{0}').setHeight({1}); ", this.Id, value);
RenderContext.ExecScript(str);
height = value;
}
}
}
|
|
第一:
这是ExtJs里的一个基类,Ext里所有的界面元素都继承自这个基类
第二:
Id,Width,Region,Height都是这个基类的属性,在ExtJs中Component类也包含这些属性,当然还有很多其他的属性,这里我们就没有一一例举了。
第三:
设置Width,Region,Height这三个属性的时候我们都让浏览器执行了一段脚本,这段脚本让ExtJs设置控件的相应属性
|
第四:
|
Panel类的代码
|
|
|
|
第一:
我们再这个控件类的构造函数里执行了JS代码,并通过JS代码创建了这个控件
第二:
创建完控件之后,就马上获取了这个控件的ID,这个ID是EXTJS自动生成的ID,与页面上的其他控件是不会重复的
第三:
控件在界面上的ID获取到之后,我们就赋给这个控件的基类的属性
|
|
Viewport类的代码
|
|
|
|
第一:
这个类的代码的执行逻辑和panel代码类的逻辑相似
第二:
这个类和Panel类都继承自Container类
|
第六:
|
Container类的代码
|
|
|
|
第一:
与Extjs相同Container类继承自Compent类,也就是我们前面提到的控件的基类
第二:
我们再这个类中添加了Add方法,在这个方法里也是执行了一段JS函数,把一个控件添加到另一个控件中
|
|
工程的目录结构:
|
|
|
|
第一:
名称空间我们都加了NS后缀,这是为了使用方便
|
第八:
|
ExecScript方法的代码:
|
|
|
|
第一:
这里的代码和我们前面文章讲到的不一样,我这里改正用这种方式执行JS代码了,只有这种方式,才能顺利的得到JS的返回值
第二:
C#代码让浏览器执行了一个Exec的JS函数
|
第九:
|
Exec的JS方法的代码
|
|
|
|
第一:
传入参数就是我们想要执行的JS语句
第二:
用eval的方法执行这个JS语句,然后把返回值还给C#
|
自己动手写UI库——引入ExtJs(布局)的更多相关文章
- 用C++写UI库最本质的思想就是不用C++写UI(如何用 C++ 从零编写 GUI?内含多个开源UI作者的回复,非常精彩)
作者:Bingo链接:https://www.zhihu.com/question/24462113/answer/83371803来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...
- android 引入一个布局库后该有的操作
背景 引入一个布局库:com.zhy:percent-support-extends 然后sync now 成功了,也就是同步成功了. 然而开始使用的时候报告了: The following clas ...
- 【摸鱼神器】UI库秒变低代码工具——表单篇(一)设计
前面说了列表的低代码化的方法,本篇介绍一下表单的低代码化. 内容摘要 需求分析. 定义 interface. 定义表单控件的 props. 定义 json 文件. 基于 el-form 封装,实现依赖 ...
- 【原创】自己动手写工具----XSmartNote [Beta 3.0]
一.前面的话 在动笔之前,一直很纠结到底要不要继续完成这个工具,因为上次给它码代码还是一年多之前的事情,参考自己动手写工具----XSmartNote [Beta 2.0],这篇博文里,很多园友提出了 ...
- 重大发现: windows下C++ UI库 UI神器-SOUI(转载)
转载:http://www.cnblogs.com/setoutsoft/p/4996870.html 在Windows平台上开发客户端产品是一个非常痛苦的过程,特别是还要用C++的时候.尽管很多语言 ...
- 微信小程序开发04-打造自己的UI库
前言 github地址:https://github.com/yexiaochai/wxdemo 接上文继续,我们前面学习了小程序的生命周期.小程序的标签.小程序的样式,后面我们写了一个简单的load ...
- 自己动手写处理器之第二阶段(1)——可编程逻辑器件与PLD电路设计流程
将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第五篇,我尽量每周四篇 通过上一章的介绍,读者应该知道CPU内部有一些主要的电路,比方:译码电路.运算电路.控 ...
- 移动Web UI库(H5框架)
1.Framework7 Framework7 - is a free and open source mobile HTML framework to develop hybrid mobile a ...
- 移动Web UI库(H5框架)有哪些,看这里就够了
前言 今年上半年,项目组在项目开发的过程中建立了一套风格统一,组件丰富完善,命名统一规范的PC端UI库,适用于做大型站点,该UI库也是应用到了整个平台的项目中,在各个项目组中进行推广.因为项目的保密性 ...
随机推荐
- sublime好看的主题webstrom破解
http://equinusocio.github.io/material-theme/ sublime jsDoc注释 Doc Blockr webstrom破解 http://15.idea.la ...
- 如何获得 request, "request.getSession(true).setAttribute("a",a);"与“request.setAttribute("a",a);”区别
protected ServletContext getServletContext() { return ServletActionContext.getServletContext();} pro ...
- BackgroundWorker控件
在我们的程序中,经常会有一些耗时较长的运算,为了保证用户体验,不引起界面不响应,我们一般会采用多线程操作,让耗时操作在后台完成,完成后再进行处理或给出提示,在运行中,也会时时去刷新界面上的进度条等显示 ...
- 解决Ubuntu下 Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR)
Ubuntu下CMake 编译时出现问题:Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR) 查找发现 # sudo apt-g ...
- Ruby-调用windows窗体
发现SharpDevelop 也支持Ruby ,特别是可以直接把winform的控件直接用在 require "mscorlib" require "System.Win ...
- Composite(组合)--对象结构型模式
1.意图 将对象组合成树形结构以表示“部分-整体”的层次结构.Composite使得用户对单个对象和组合对象的使用具有一致性. 2.动机 可以组合多个简单组件以形成一些较大的组件,这些组件又可以组合成 ...
- iOS 地图
MapKit框架使用前提 导入框架 导入主头文件 #import <MapKit/MapKit.h> MapKit框架使用须知 MapKit框架中所有数据类型的前缀都是MK MapKi ...
- 在updatepanel使用colorbox无效
今天在给一个使用colorbox的页面加了一个updatepanel后,colorbox无效了,原因是以前的页面初始化colorbox是用 $(document).ready(function(){ ...
- TF-IDF 相关概念
概念 TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度. TF-IDF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级. 词频( ...
- iOS模拟各种网络状态
在iOS开发中我们有在各种不同网络状态下测试app运行状态的需求.苹果给我们提供了在模拟器和真机状态下,模拟各种网络状态的软件. 在模拟器中 苹果提供的模拟网络状态的工具官网地址下载该工具需要登录Ap ...