自己动手写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#

好,本文大概就是这样,喜欢我的文章,请帮忙点推荐------------------->

时间: 2024-10-31 02:19:03

自己动手写UI库——引入ExtJs(布局)的相关文章

用C++写UI库最本质的思想就是不用C++写UI(如何用 C++ 从零编写 GUI?内含多个开源UI作者的回复,非常精彩)

作者:Bingo链接:https://www.zhihu.com/question/24462113/answer/83371803来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 用C++写UI库最本质的思想就是不用C++「写」UI. 不管是开放C++底层库到XML+Json+Lua的实现,或是单一使用XML完成布局管理,或是现前流行的使用Electron(http://electron.atom.io/)也就是HTML+CSS+JS完成UI实现的,本质上都不希望

自己动手写android图片异步加载库(二)

在<自己动手写android图片异步加载库>系列的第一篇文章中,主要是学习了使用ReferenceQueue来实现一个内存缓存.在这篇文章中主要是介绍在下载很多图片是怎么控制线程和队列.在这版代码里,加入信号量和队列,可以控制下载任务的顺序.可以控制暂停和结束. 代码A:ImageLoader.java /** * 图片加载工具类 * * @author qingtian * @blog http://blog.csdn.net/bingoSpunky */ @SuppressLint(&qu

javascript动手写日历组件(2)——优化UI和添加交互(by vczero)

一.优化UI 继上一篇,http://www.cnblogs.com/vczero/p/js_ui_1.html.开始优化UI,主要优化的部分有: (1)增加星期行.(2)字体设置.(3)日期垂直居中.(4)将单元格->底部线条.(5)修改文本的颜色对比.(6)将内部调用的函数加前缀_,如_addHeader()._addWeekday(). 修改的后基本效果如下图: 整个代码做了小修小改: 1 var Calendar = function(div){ 2 this.div = documen

android 引入一个布局库后该有的操作

背景 引入一个布局库:com.zhy:percent-support-extends 然后sync now 成功了,也就是同步成功了. 然而开始使用的时候报告了: The following classes could not be found: -?com.zhy.android.percent.support.PercentLinearLayout (Fix Build Path, Edit XML, Create Class) Tip: Try to build the project.

《自己动手写开源框架10》:Web界面快速开发实践

下面是一些常用的链接,供大家使用: GIT地址:https://git.oschina.net/tinyframework/tiny问题报告:https://git.oschina.net/tinyframework/tiny/issues更多内容,请看本人博客,不一样的内容,一样的精彩! 在展示过程的同时,会把相关的知识做一个充分的介绍 .一.寻找网站模板 要做网站,不能没有模板,自己不会做网页设计,咋办?问谷歌找百度呗,找了一阵,看到下面这个模板不错,就它了. http://www.toop

IOS基础UI之(三)手写UI和storyboard方式实现图片移动和缩放

手写UI是最早进行UI界面布局的方法,优点是灵活自由,缺点是使代码看起来比较长.平时学习的时候可以多尝试手写ui,这样会更深入熟悉控件.storyboard开发效率相对比较高.实际开发中看情况而定!! 下面用这两种方式分别实现图片移动和缩放. 功能描述: 1. 界面布局 2.点击相应的按钮,对显示的图片移动.缩放. 效果如下:    掌握点: 一:熟悉代码的描述UIButton属性 1.UIButton状态 UIControlStateNormal          // 正常状态 UICont

《自己动手写框架8》:高屋建瓴,理念先行

<史记·高祖本纪>:"地势便利,其以下兵于诸侯,譬犹居高屋之上建瓴水也."这里用到了高屋建瓴这个词.意思是把瓶子里的水从高层顶上倾倒.比喻居高临下,不可阻遏的形势.现指对事物把握全面,了解透彻.此典故于汉高祖刘邦欲杀功臣韩信,大夫田肯进言到"陛下牢牢地控制着三秦(关中),陛下利用这雄险的地势,来控制.驾御诸侯,就如从高高的屋脊上把水从瓶子里倒下去."以此来表彰韩信的功劳,于是,刘邦赦免了韩信,只是将他降为淮阴侯. 同样,设计企业框架,也要对事物把握全面,

《开源框架那点事儿20》:自己动手写前端框架

曾经发表过一篇文章:TinyAdmin前端展现框架.其在线演示路径为:http://www.tinygroup.org/tinyadmin/.应该说有很多人还是感觉兴趣的,可是因为这个是基于SmartAdmin框架改写的,尽管我们自己买了SmartAdmin的授权,可是广大用户假设要用的时候,就会有授权相关的问题,这会大大影响一些人的使用决策--尤其是会再发行的朋友. 再一个原因是SmartAdmin初看不是不错的.可是实际用起来.里面的问题比較多.对IE8基本上能够说是不兼容,尽管我们努力进行

转: windows下C++ UI库 UI神器-SOUI

转:http://www.cnblogs.com/setoutsoft/p/4996870.html 前言 在Windows平台上开发客户端产品是一个非常痛苦的过程,特别是还要用C++的时候.尽管很多语言很多方法都可以开发Windows桌面程序,目前国内流行的客户端产品都是C++开发的,比如QQ,YY语音,迅雷等.快速,稳定是我认为的应用软件开发框架最基本的要求,对于UI还有两个要求就是界面美观,配置灵活.C++语言满足了快速的要求,传统的客户端软件开发框架如MFC,WTL等满足了稳定的要求.然