扬帆☆启航

1、企业网站建设、推广、维护 2、中小型企业、店铺的业务管理系统(人事、工资、销售、库存管理、会员管理、统计查询、发票管理、客户关系管理,售后服务管理,物资管理等) 3、中小型企业信息化解决方案

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  82 随笔 :: 23 文章 :: 87 评论 :: 0 引用

2010年1月24日 #

 

新维职业教育“艺术设计”就业班

招生计划

招生专业:艺术设计就业班

招生对象:年满16周岁,希望通过职业技能培训改变生活改变命运、有志从事计算机行业的社会各界人员。

入学费用:报名时交200元报名费,入学缴纳700元住宿费,200元资料费,就业10天之内交学费5800元。

优惠政策:年前报名优惠500元学费。

开学时间:2010310

联系电话:13473643914

       QQ:56468747

联系人: 老师

 

好消息,先就业,后交费,学习艺术设计,学期短、包就业。有意向者可以联系我,电话13473643914

posted @ 2010-01-24 17:24 赵晓雷 阅读(34) 评论(0)  编辑

2009年8月12日 #

如果你擅长.net平台下的web开发,并对web非常感兴趣。有意向的请联系我.或将简历发到下面邮箱.
zhaosoft1982@gmail.com

 此职位可偏向前端或者后端,但必须有一个是擅长的。

1. 熟悉基于C#语言的.NET平台,具备良好的面向对象思想
2. 熟悉ASP.NET网页开发,掌握服务器端相关原理及相关技巧。
3. 熟悉XML,CSS,JavaScript,DHTML等相关web开发技术
4. 了解.net平台的数据库编程,熟悉SQL Server数据库系统,有数据库设计、性能优化以及SQL存储过程编写的经验

以下可选:
1.熟悉asp.net mvc开发流程
2.熟悉silverlight/wpf相关技术
3.了解.net 3.5的linq技术或开源ORM框架NHibernate
4.具备web前端框架的开发经验,如Ext,jQuery等.

     新维职业教育是经国家教育及劳动部门批准成立的正规教育机构,多年来不断蓬勃发展,形成了以北京为主的三大校区:华北科技学院成教院校区、交通干部管理学院校区、河北唐山校区,学校依托两所名牌大学资源,校园环境优美,教育教学设施齐全,总占地面积达到600多亩,建筑面积近19万平米,拥有教学楼、科技楼、宿舍楼、培训楼、图书馆、400米塑胶标准运动场、室内篮球排球馆、室内游泳馆、网球场、保龄球馆、多功能厅等教学和生活设施。学校现有“双师型”师资128人,有客座教授80人。学校办学采用“学历教育+职业教育”的教育模式,为社会培养了大批高精尖实用型人才。

学校为学生提供实习、实训基地,下设奥维天成(北京)科技有限公司、世纪星特教训练园(国内规模最大的特教园之一)、快乐装饰等企业;为学生提供全程优质的就业服务,与国内外各大企业合作,形成了快捷的就业渠道,“产学研”的结合保障了我校学生实习及就业问题,同时为实现我校成为“国内一流职业院校”提供了良好的保障。

 

posted @ 2009-08-12 14:54 赵晓雷 阅读(17) 评论(0)  编辑

2009年7月31日 #

ViewState(英文)是一种机制,ASP.NET 使用这种机制来跟踪服务器控件状态值,否则这些值将不作为 HTTP 窗体的一部分而回传。例如,由 Label 控件显示的文本默认情况下就保存在 ViewState 中。作为开发人员,您可以绑定数据,或在首次加载该页面时仅对 Label 编程设置一次,在后续的回传中,该标签文本将自动从 ViewState 中重新填充。因此,除了可以减少繁琐的工作和代码外,ViewState 通常还可以减少数据库的往返次数。
ViewState 的工作原理
ViewState 确实没有什么神秘之处,它是由 ASP.NET 页面框架管理的一个隐藏的窗体字段。当 ASP.NET 执行某个页面时,该页面上的 ViewState 值和所有控件将被收集并格式化成一个编码字符串,然后被分配给隐藏窗体字段的值属性(即 <input type=hidden>)。由于隐藏窗体字段是发送到客户端的页面的一部分,所以 ViewState 值被临时存储在客户端的浏览器中。如果客户端选择将该页面回传给服务器,则 ViewState 字符串也将被回传。在上面的图 2 中可以看到 ViewState 窗体字段及其回传的值。
回传后,ASP.NET 页面框架将解析 ViewState 字符串,并为该页面和各个控件填充 ViewState 属性。然后,控件再使用 ViewState 数据将自己重新恢复为以前的状态。
关于 ViewState 还有三个值得注意的小问题。
如果要使用 ViewState,则在 ASPX 页面中必须有一个服务器端窗体标记 (<form runat=server>)。窗体字段是必需的,这样包含 ViewState 信息的隐藏字段才能回传给服务器。而且,该窗体还必须是服务器端的窗体,这样在服务器上执行该页面时,ASP.NET 页面框架才能添加隐藏的字段。
页面本身将 20 字节左右的信息保存在 ViewState 中,用于在回传时将 PostBack 数据和 ViewState 值分发给正确的控件。因此,即使该页面或应用程序禁用了 ViewState,仍可以在 ViewState 中看到少量的剩余字节。
在页面不回传的情况下,可以通过省略服务器端的 <form> 标记来去除页面中的 ViewState。
充分利用 ViewState
ViewState 为跨回传跟踪控件的状态提供了一条神奇的途径,因为它不使用服务器资源、不会超时,并且适用于任何浏览器。如果您要编写控件,那么肯定需要了解如何在控件中维护状态(英文)。
开发人员在编写页面时同样可以按照几乎相同的方式来利用 ViewState,只是有时页面会包含不由控件存储的 UI 状态值。您可以跟踪 ViewState 中的值,使用的编程语法与会话和高速缓存的语法类似:
[Visual Basic]
' 保存在 ViewState 中
ViewState("SortOrder") = "DESC"
' 从 ViewState 中读取
Dim SortOrder As String = CStr(ViewState("SortOrder"))
[C#]
// 保存在 ViewState 中
ViewState["SortOrder"] = "DESC";
// 从 ViewState 中读取
string sortOrder = (string)ViewState["SortOrder"];
posted @ 2009-07-31 11:55 赵晓雷 阅读(89) 评论(0)  编辑

2009年4月8日 #

装完 PowerDesigner 15 ,如果装Vs2008的 Add-in , 再到 Vs 里,发现写代码的智能感知出现1秒左右立刻没掉,非常不爽。

 

上网找到,说是要去掉那个 spell check

打开VS,在Model Tools->General Options->Add-Ins里,把Spell Checker这项取消

我照样试过,发现一样,没有任何改善。

 

既然是一个add-in,我删了你不就得了。

 

于是。开始了。

文件在

C:\Program Files\sybase\PowerDesigner 15\Add-ins\Spell Checker\SpellChecker.dll

各人的文件路径可能会不一样。

 

在DOS 窗口中。进入到C:\Program Files\sybase\PowerDesigner 15\Add-ins\Spell Checker\

然后 regsvr32 /u SpellChecker.dll

再 ren SpellChecker.dll SpellChecker.dll.noon

 

改个名,防止以后要用到的时候找不到。

 

然后发现 VS 崩掉了,汗,忘记关 Vs 了,

 

正好崩掉了重启。进入一看,世界清静了,可爱的智能感知又好了。

虽然那个add-in还在,但是找不到文件,不工作了。

 

OK,搞定。

 

下载:
http://download.sybase.com/eval/PowerDesigner/PowerDesigner15_Evaluation.exe
破解:
http://download.csdn.net/source/982530

posted @ 2009-04-08 08:06 赵晓雷 阅读(420) 评论(0)  编辑

2008年12月5日 #

【原文地址】Silverlight Tutorial Part 3: Using Networking to Retrieve Data and Populate a DataGrid
【原文发表日期】 Friday, February 22, 2008 5:54 AM

这是8个系列教程的第三部分,这系列示范如何使用Silverlight 2的Beta1版本建造一个简单的Digg客户端应用。这些教程旨在按顺序阅读,帮着解释Silverlight的一些核心编程概念。

使用Networking取回Digg故事

Silverlight 2 有内置的networking API,允许Silverlight客户端调用远程的REST, SOAP/WS*, RSS, JSON和XML HTTP服务。Silverlight 2还包含了内置的socket API (System.Net.Sockets),允许Silverlight客户端通过非HTTP协议来通信(对聊天服务等这样的场景非常理想)。

跨域网络访问

Silverlight 2应用在做网络调用时,始终可以回调到它们的“原始(origin)”服务器(意味着它们可以调用下载的应用来自的同域的URL)。Silverlight 2应用还可以做跨域网络调用(意味着它们可以调用与下载的应用来自的不同的域上的URL),只要远程的web服务器拥有一个XML策略文件,表明客户端是允许做这些跨域调用的。

Silverlight 2 定义了一个XML策略文件格式,允许服务器管理员精确地控制一个客户端应该有些什么访问权。Silverlight 2 也遵守默认的Flash跨域策略文件格式-这意味着你可以使用Silverlight 2 来调用web上已经允许Flash客户端跨域访问的任何现有的远程REST, SOAP/WS*, RSS, JSON 或 XML 端点(end-point )。

Digg.com有一套非常酷的通过HTTP通信的Digg APIs。因为他们有一个Flash跨域策略文件在他们的服务器上,我们可以直接从我们的Silverlight Digg 客户端应用中调用它们(而不要求我们通过我们的web服务器去访问他们的API)。

Digg.com 主题 Feed API

我们要允许终端用户使用我们的应用输入一个搜索主题(譬如,“Programming”),然后点击“搜索”按钮,从Digg.com取回符合条件的前N条故事:

我们可以使用Digg.com List Stories REST API feed API 来实现。它在URL中接受一个主题参数(譬如,GET /stories/topic/programming),然后返回一个匹配那个主题的XML格式的Digg故事集。点击这里看一下这个XML格式的例子。

使用 System.Net.WebClient 来异步调用Digg REST Feed

在上面的搜索按钮被点击之后,我们将处理它的Click事件,从WaterMarkTextBox控件中取回要搜索的主题字符串,然后启动一个发向Digg的网络调用,为那个主题取回相应的XML列表。

Silverlight 在 System.Net 命名空间下包含了WebClient辅助类(该类也在完整的.NET 框架下)。我们可以使用这个类从URL异步下载内容。异步下载Digg故事的好处是,在等待远程服务器的回复时,我们的UI不用阻塞或变得没有反应(允许我们拥有一个非常流畅的用户体验)。

通过WebClient类执行异步下载,我们要做的是注册一个DownloadStringCompleted事件处理方法(它将在请求的内容被下载之后被调用),然后调用WebClient.DownloadStringAsync(url) 辅助方法来开始下载:

使用上面的代码,我们现在就可以异步取回一个XML数据的字符串,内含有关用户想要的任何主题的Digg故事。

使用LINQ to XML把XML格式的Digg故事分析成Story类对象

至此,我们可以取回Digg故事数据的XML片段了,下一步将是对其进行分析(parse),并将它转换成我们可以操作和绑定到控件上的DiggStory对象。

我们将首先定义一个DiggStory类,该类拥有可以映射到来自Digg的XML内容上的属性(我们将利用C#新的 "自动属性"的特性来实现):

然后我们就可以使用LINQ (是内置于 Silverlight 2中的)和 LINQ to XML (是包含在我们的Silverlight 应用中的一个额外的库 )来轻松地分析和过滤从Digg返回的XML文档,使用下面的代码把它翻译成一个DiggStory对象序列:

注意上面,我们现在有了来自XML的我们可以操作的强类型的DiggStory对象。

在DataGrid控件中显示Digg故事

我们将使用新的 Silverlight DataGrid 控件来在我们的应用中显示Digg故事。要使用它,我们要引用Silverlight Data 控件程序集,然后把前面网页上的“Todo”文字替换成一个DataGrid控件声明:

DataGrid允许你明确地配置列的声明和显示类型(为取得最大的控制),或者,你也可以设置它的AutoGenerateColumns属性成true,让DataGrid对数据源使用反射,基于你的对象的定义,为你创建默认的列。

然后我们就可以更新我们的后台代码类,用编程的方法将DataGrid的ItemSource属性绑定到在点击搜寻按钮时从Digg取回的故事序列:

现在,运行我们的Silverlight应用,做一个搜索的话,我们将看到从Digg取回的实时主题故事数据的列表:

Silverlight的Datagrid支持你预期客户端网格控件应该拥有的所有的标准功能:双向原地编辑,选择,卷动,改变表列大小等等。它还支持自动流动的布局,意味着它可以动态地扩展或收缩来充满包含它的内容容器。DataGrid还拥有一个丰富的模板模型,允许你对显示和表列数据的编辑进行定制。我在将来会撰写更多的贴子,讨论如何使用DataGrid。

以下的步骤

现在我们可以从Digg.com 取回Digg故事数据,并在我们的应用中将故事数据显示出来了。

下一步将是回到我们的Page.xaml 标识,去掉我们目前正在使用的行内的样式声明。

要做那个,让我们跳到下一个教程:《使用样式元素更好地封装观感(Look and Feel)》。

posted @ 2008-12-05 21:57 赵晓雷 阅读(56) 评论(0)  编辑

【原文地址】Silverlight Tutorial Part 2: Using Layout Management
【原文发表日期】 Friday, February 22, 2008 5:55 AM

这是8个系列教程的第2部分,这个系列示范如何使用 Silverlight 2 的 Beta1 版本来创建一个简单的 Digg 客户端应用。这些教程请依次阅读,将有助于您理解 Silverlight 的一些核心编程概念。

理解布局管理

Silverlight 和 WPF 都支持一种灵活的布局管理系统,能让开发者和设计师轻松的定位 UI 上的控件。该布局系统对显式指定坐标的控件支持固定的定位模型;除此之外,还支持一种更为动态的定位模型,控件和布局能随着浏览器的大小改变而自动改变其大小和方位。

在 Silverlight 和 WPF 中,开发者可以用布局面板来协调包含在其中的控件的位置和大小。Silverlight Beta1 中内建的布局面板包括在 WPF 中最常用的3种:

  • Canvas
  • StackPanel
  • Grid

Canvas面板

Canvas 面板是一种很基础的布局面板,它支持对其中的控件采用绝对坐标定位。

你可以通过一种 XAML 特性--- "附加属性” 对 Canvas 中的元素进行定位。用附加属性,你可以指定控件相对于其直接父 Canvas 控件的上、下、左、右坐标的位置。附加属性很有用,因为它让父面板可以扩展其中包含的控件的属性集。Canvas 通过定义扩展属性 Top 和 Left, 就能定义其中 Button (或其他任何 UI 元素)的 Left, Top,而不需要真正向 Button 类中添加这个属性,或 修改 Button 类。

我们可以向 Canvas 容器中添加两个按钮,指定其距离 Canvas 左侧的距离为 50 像素,离上边的距离则分别为 50 像素和 150 像素。使用如下 XAML 语法即可完成(其中 Canvas.Top 和 Canvas.Left 都是附加属性的例子):

这些代码绘制的界面效果如下:

Canvas 适用于其中包含的 UI 元素比较固定的情形,但是如果你想向其中添加更多的控件,或者 UI 需要改变大小或能够移动,Canvas 显得不太灵活。这时,你不得不忙于手写代码来移动 Canvas 中的东西(这很痛苦)。应付这种动态的场景,更好的办法通常是使用其它带有相关功能的内建语义的布局面板,如 StackPanel 和 Grid。

StackPanel

StackPanel 是一种简单的布局面板,它支持用行或列的方式来定位其中包含的控件。StackPanel 常用于安排页面上的一个很小的 UI 部分。

例如,我们可以用下面的 XAML 标签在页面上垂直的排布3个按钮:

在运行时刻,StackPanel 会自动在一个垂直地堆叠(stack)中排列我们的按钮(【译注:这也是为什么叫 StackPanel 的原因】),如下所示:

同样,我们还可以把 Orientation 属性设置为 Horizontal 而不是 Vertical (默认值):

这会让 StackPanel 水平地排布3个按钮,如下图所示:

Grid面板

Grid 控件是最灵活的布局面板,它支持用多行和多列的方式排布控件。在概念上,它和 HTML 里的 Table (表格)类似。

不同于 Table 的是,你不需要将控件内嵌到行/列元素中,而是通过定义 <Grid.RowDefinitions> 和 <Grid.ColumnDefinitions> 属性来定义 Grid 的行和列。这两个属性需要定义在 <Grid> 标签内。这样之后,你就可以在其中的控件上,用 XAML 的“附加属性”语法指定它属于哪一行、哪一列。

比如,我们可以用如下语法定义3行3列的 Grid 布局,然后在其中放置4个按钮:

以上代码会按下图方式排布按钮:

除了支持绝对尺寸定义(如:Height="60"),Grid 的 RowDefinition 和 ColumnDefinition 控件还支持自动改变大小的模式(Height="Auto"),这样会根据其中内容的尺寸自动改变 Grid 或 Row 的尺寸(你也可以指定最大或最小尺寸限制)。

Grid 的 Row 和 ColumnDefinitions 还支持叫做 "Proportional Sizing" (按比例缩放)的特性。用这个特性,可以让 Grid 的行列按相对比例的方式排放(如:你可以指定第二行的尺寸为第一行的2倍)。

你会发现 Grid 提供了非常多的功能和灵活性 - 而它也许会成为你最终最常用的布局面板控件。

用布局面板排布我们的 Digg 页面

我们创建 Digg 例子的目标,是得到最终看起来像下图的页面:

要创建这种布局,我们首先添加一个其中包含两个 RowDefinition 的根级 Grid 面板。第一行的高度是 40 像素,而第二行则占据所有剩下的空间(Height="*"):

小技巧:注意上面我将 Grid 的 ShowGridLines 属性设置为 True. 这样我们在运行时就能轻易的看到其行列的分界线:

接下来,我们在刚才的根级 Grid 面板里,添加第二个 Grid 面板到第一行的位置,用它来排布页面顶部的行(页面头部)。我们在其中创建3列:分别容纳标题,搜索文本框,和搜索按钮:

完成了这些后,我们就得到了 Digg 搜索页面的基本布局,如下所示:

注:如果不用嵌套的 Grid,我们还可以用一个 2行3列的 Grid 来完成这个布局,配合使用 Grid 的 ColSpan/RowSpan 特性来合并多个列中的内容(和你在 HTML table 中的做法类似)。我不这么做,而是选择使用嵌套 Grid 的原因,是因为这样更便于学习和理解。

现在我们已经完成了布局,接下来要做的是向其中添加控件。

对头部的行,我们用内建的 <Border> 控件(设置其 CornerRadius 为 10,以得到圆角效果)并在其中添加一些文本来创建标题。我们用内建的 <WatermarkedTextBox> 控件来创建第二列的搜索文本框。并在第3列放置一个搜索 <Button>. 然后我们在第二行放一些占位文字,稍后我们会在这里显示搜索结果。

注:下面我会直接在控件中内嵌样式信息(FontSize, Colors, Margins 等)。在这个系列教程中,晚一点我会演示如何用 Styles 来提取、封装这些设定到一个独立的文件中(类似 CSS),以便于在整个应用程序中重用。

 

现在,让我们运行一下应用程序,就会显示出如下的界面:

动态改变应用程序的尺寸

你也许注意到了,在上面的 XAML 中我们的顶层控件设置成了固定的高度和宽度:

这样设置,我们的 Silverlight 应用程序会一直保持这个固定的尺寸。放大浏览器的尺寸会更明显:

虽然在某些场合下,将内嵌的应用程序固定在 HTML 页面的一个固定尺寸的区域内会很有用,但我们的 Digg 搜索程序不一样,我们宁愿它能自动随着浏览器而缩放,就像一个普通的 HTML 页面那样。

好消息是,这很容易实现。只要去除根控件上的 Width 和 Height 属性就行了:

这样,我们的 Silverlight 应用程序就会自动扩展(或收缩),以填满其嵌入的 HTML 容器。因为我们用来测试的 SilverlightTestPage.html 文件将 Silverlight 控件放置在一个 HTML <div>元素中,并且其 CSS 设置中宽高均为 100%, 所以 Digg 应用程序最终会填满整个浏览器:

注意页面头部中的文字内容的尺寸是如何随着浏览器宽度而自动改变的:

当我们缩小浏览器尺寸时,带水印的文本框和搜索按钮会保持同样的尺寸,因为其 Grid 容器列的宽度是固定的。包含 "Digg Search" 标题的 <Border> 控件却会自动调整尺寸,因为其 Grid 列的宽度设置成了 Width="*".

我们不需要编写一行代码就可以启用这个布局行为,Grid容器和布局系统会为我们自动调整大小或流动其中的任何东西。

下一步

现在我们已经创建好了 Digg 程序的布局结构,并且定义好了页面头部的行。

下一步,我们会实现该程序的搜索行为 - 让它在程序的终端用户搜索某个标题时,能够真正的从 Digg.com 去获取故事内容。

如果你想知道怎么实现,请继续阅读下一篇: 使用 Networking 获取数据并填充 DataGrid

posted @ 2008-12-05 21:55 赵晓雷 阅读(218) 评论(0)  编辑

【原文地址】Silverlight Tutorial Part 1: Creating "Hello World" with Silverlight 2 and VS 2008
【原文发表日期】 Friday, February 22, 2008 5:57 AM

这是8个系列教程的第一部分,这系列示范如何使用Silverlight 2的Beta1版本建造一个简单的Digg客户端应用。这些教程旨在按顺序阅读,帮着解释Silverlight的一些核心编程概念。

使用 VS 2008 创建一个新的Silverlight 应用

我们来开始我们的Digg应用的开发,先选择Visual Studio 2008 中的文件->新项目菜单项,使用新项目对话框创建一个“Silverlight Application” (注:你需要在Beta1发布后,下载和安装 VS 2008的Silverlight工具才能得到这个支持):

我们将该项目命名为“DiggSample”。在点击OK按钮后, Visual Studio 会显示另外一个对话框,允许我们选择我们是否只要创建一个Silverlight应用项目,或者还要加一个服务器端的ASP.NET Web项目到包含Silverlight应用的解决方案里去:

在这个例程里,我们将选择还要添加一个ASP.NET Web Application 项目到解决方案里去,并将它命名为“DiggSample_WebServer”。在点击OK之后,Visual Studio 会为我们创建一个解决方案,里面包含一个Silverlight 客户端应用和一个ASP.NET web 服务器端应用:

如果我们做一次编译的话, Visual Studio 会自动把编译好的 Silverlight 应用拷贝到我们的web服务器项目中去,不需要手工的步骤或配置。VS为我们创建的默认的web服务器项目包含一个ASP.NET网页和一个静态的 HTML网页,我们可以用来运行和测试其中的Silverlight应用。

注: Silverlight应用可用于任何web服务器(包括Linux上的Apache),宿主于静态HTML文件或者任何服务器端生成的网页(包括PHP, Java, Python, Ruby等等)中。在这个Digg样例中,我们不会写任何服务器端的代码,而是将使用Silverlight的跨域networking功能,来直接访问Digg服务的API。我选择创建一个ASP.NET web服务器项目,主要是想获得自动的部署,并且使用它内置的web服务器来做测试。

理解Silverlight应用里都有些什么

在默认情形下,一个新建的Silverlight应用项目包含一个Page.xaml和一个 App.xaml文件,以及与它们相关的后台(code behind )类文件(可以用VB, C#, Ruby 或Python来编写):

XAML文件是XML文本文件,可以用来用声明的方式指定 Silverlight 或 WPF应用的用户界面。XAML还可更广泛地用来用声明的方式代表.NET对象。

App.xaml 文件一般用来声明譬如象画刷和样式对象这样可在整个应用中共享的资源。App.xaml的后台Application类可用来处理应用级的事件,象Application_Startup, Application_Exit 和Application_UnhandledException。

Page.xaml 文件,在默认情形下,是在应用激活时装载的起始的UI控件。在其中,我们可以使用UI控件来定义我们的用户界面,然后在Page的后台代码类里处理它们的事件(详见后文)。

在我们编译DiggSample项目时,在默认情形下,Visual Studio 会把代码和XAML标识编译进一个标准的 .NET 程序集文件中,然后把它和任何静态的资源(象图片或我们想要包含的静态文件)包装进硬盘上一个叫做“DiggSample.xap”的文件中去:

“.xap”文件(其音发作“zap”)使用标准的 .zip压缩算法来减小客户端下载的大小。一个“hello world”.NET Silverlight 应用(用VB或C#编写的)其大小大概为4KB。

注: Beta1版本中的一些控件是在程序集中实现的,如果使用这些控件的话,这些程序集会重新发布于应用的 .xap 文件中(会增加应用的大小,超出4KB的基底大小)。在Digg应用中使用的所有控件将会在Beta2版和最终版的核心Silverlight下载包中,这意味着完成的应用的总下载大小大概只在6-8KB范围内(所以是非常小,下载起来非常快)。

要宿主和运行一个Silverlight 2 应用,你可以把<object>标签加到任何标准的HTML页面中(不需要 JavaScript )并将其指向 .xap 文件。Silverlight然后就会自动下载这个.xap 文件,生成实例,将其宿主于浏览器中的HTML网页中。这是跨浏览器(Safari, FireFox, IE等),跨平台(Windows, Mac, and Linux)工作的。

HTML和ASP.NET测试网页(内含<object>标签,其引用指向我们的Silverlight 应用)是在我们创建项目时为我们自动添加的,这意味着我们只要点击F5编译,运行和测试就可以了。

学习如何添加控件和处理事件

现在我们的Digg应用什么都不做,在运行它时,只会调出一个空白的网页。

我们可以打开项目中的Page.xaml文件来改变它,往里面加些内容:

我们将开始改变网格的背景颜色,在其中声明一个Button控件。我们将给按钮一个"x:Name"属性,设置其值为“MyButton“,这会允许我们在后台代码类中用编程的方法引用它。我们还将设置它的Content, Width 和 Height 属性:

当我们运行应用时,我们的按钮将会在网页的中间出现,内含”Push Me“内容文字,象下面这样:

 

要给我们的按钮加行为的话,我们可以给它加一个"Click"事件处理函数。我们可以在源码视图中通过输入事件的名称来做:

然后就会提示我们在我们的后台代码类中该使用的事件处理函数:

然后我们可以输入一个要用的新事件处理方法的名称,或者只要点击回车键,使用默认的命名约定来命名事件处理方法:

然后VS就会自动地在我们的后台代码类文件中创建一个占位的事件处理函数实现。我们可以使用这个事件处理函数在按钮被点击时,用新的消息更新它的内容:

在做完上面的改动后,我们可以重新运行应用,再次点击按钮,现在它的内容就会被更新为“Pushed!”的消息:

 

以下的步骤

在完成我们的应用之前,我们还有不少工作要做... :-)

下一步,是配置我们的应用的总的UI布局结构,在其中安排更多的控件。 要做那个,就让我们跳到下一个教程《使用布局管理》

posted @ 2008-12-05 21:31 赵晓雷 阅读(191) 评论(0)  编辑

2008年4月18日 #

posted @ 2008-04-18 11:47 赵晓雷 阅读(568) 评论(0)  编辑

posted @ 2008-04-18 11:46 赵晓雷 阅读(1210) 评论(1)  编辑

posted @ 2008-04-18 11:42 赵晓雷 阅读(53) 评论(0)  编辑