自己动手写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库也是应用到了整个平台的项目中,在各个项目组中进行推广.因为项目的保密性 ...
随机推荐
- win8系统安装xampp后apache无法启动
根据提示判断为端口被占用: 处理方法: 右击左下角windows图标,选择运行,调了同cmd; 依次排除80及443端口占用情况: netstat -ano|findstr "80" ...
- 【BZOJ1226】学校食堂Dining(状压DP)
题意:见题面 思路:设dp[i,sta,k]为前i个人已经吃完,从第i人到第i+b[i]人的吃饭状况是sta,前一个吃完的人离i的距离是k(可能为负)的最小值 \[ dp[i+1,sta>> ...
- 极客DIY:使用树莓派制作一套“NAS+私有云盘+下载机”
原创作者:HackLiu 0×00 前言 如果你家里有多台设备需要联网需要娱乐,你一定会或多或少遇到设备碎片化带来的烦恼.当然,已经有很多厂商包括新晋的小米.360在内的互联网公司做了这个事情 ...
- ASP.NET ZERO 学习 事件总线
用于注册和触发客户端的全局事件. 介绍 Pub/sub事件模型广泛用于客户端,ABP包含了一个简单的全局事件总线来 注册并 触发事件. 注册事件 可以使用abp.event.on来注册一个全局事件.一 ...
- 第三十六章 metrics(4)- metrics-graphite
将metrics report给graphite(carbon-relay) 一.代码 1.pom.xml <!-- metrics-graphite --> <dependency ...
- 加载form表单
var row = $('#dg').datagrid('getData').rows[rowIndex]; $('#moneyff').form('load', row);//row 可以 ...
- HTTP协议-引自孤傲苍狼博客
一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的 ...
- SVN服务器安装
CentOS 6.5 SVN搭建 (YUM安装) 参考文献:http://www.linuxidc.com/Linux/2013-10/91903.htm 安装说明 安装了一下SVN服务器,过程如 ...
- [python] 线程
来源:田飞雨 链接:http://www.jianshu.com/p/12cd213a93bf 虽然python中由于GIL的机制致使多线程不能利用机器多核的特性,但是多线程对于我们理解并发模型以及底 ...
- Tempter of the Bone---hdu1010(dfs+剪枝)
http://acm.hdu.edu.cn/showproblem.php?pid=1010 折磨我一下午 题目大意: 从s点走到d点能否恰好走k步 刚开始以为是广搜,其实是深搜. dfs多优化一 ...