这是8个系列教程的第一部分,这系列示范如何使用Silverlight 2的Beta1版本建造一个简单的Digg客户端应用。这些教程旨在按顺序阅读,帮着解释Silverlight的一些核心编程概念。
使用VS 2008 创建一个新的Silverlight 应用
我们来开始我们的Digg应用的开发,先选择Visual Studio 2008 中的文件->新项目菜单项,使用新项目对话框创建一个“Silverlight Application” (注:你需要在Beta1发布后,下载和安装VS 2008的Silverlight 工具才能得到这个支持):
我们将该项目命名为“DiggSample”。在点击OK按钮后,Visual Studio 会显示另外一个对话框,允许我们选择我们是否只要创建一个Silverlight应用项目,或者还要加一个服务器端的https://www.doczj.com/doc/009294034.html, Web项目到包含Silverlight应用的解决方案里去:
在这个例程里,我们将选择还要添加一个https://www.doczj.com/doc/009294034.html, Web Application 项目到解决方案里去,并将它命名为“DiggSample_WebServer”。在点击OK之后,Visual Studio 会为我们创建一个解决方案,里面包含一个Silverlight 客户端应用和一个https://www.doczj.com/doc/009294034.html, web 服务器端应用:
如果我们做一次编译的话,Visual Studio 会自动把编译好的Silverlight 应用拷贝到我们的web服务器项目中去,不需要手工的步骤或配置。VS为我们创建的默认的web服务器项目包含一个https://www.doczj.com/doc/009294034.html,网页和一个静态的HTML网页,我们可以用来运行和测试其中的Silverlight应用。
注:Silverlight应用可用于任何web服务器(包括Linux上的Apache),宿主于静态HTML文件或者任何服务器端生成的网页(包括PHP, Java, Python, Ruby等等)中。在这个Digg样例中,我们不会写任何
服务器端的代码,而是将使用Silverlight的跨域networking功能,来直接访问Digg服务的API。我选择创建一个https://www.doczj.com/doc/009294034.html, 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 应用,你可以把
HTML和https://www.doczj.com/doc/009294034.html,测试网页(内含
学习如何添加控件和处理事件
现在我们的Digg应用什么都不做,在运行它时,只会调出一个空白的网页。
我们可以打开项目中的Page.xaml文件来改变它,往里面加些内容:
我们将开始改变网格的背景颜色,在其中声明一个Button控件。我们将给按钮一个"x:Name"属性,设置其值为“MyButton“,这会允许我们在后台代码类中用编程的方法引用它。我们还将设置它的Content, Width 和Height 属性:
当我们运行应用时,我们的按钮将会在网页的中间出现,内含”Push Me“内容文字,象下面这样:
要给我们的按钮加行为的话,我们可以给它加一个"Click"事件处理函数。我们可以在源码视图中通过输入事件的名称来做:
然后就会提示我们在我们的后台代码类中该使用的事件处理函数:
然后我们可以输入一个要用的新事件处理方法的名称,或者只要点击回车键,使用默认的命名约定来命名事件处理方法:
然后VS就会自动地在我们的后台代码类文件中创建一个占位的事件处理函数实现。我们可以使用这个事件处理函数在按钮被点击时,用新的消息更新它的内容:
在做完上面的改动后,我们可以重新运行应用,再次点击按钮,现在它的内容就会被更新为“Pushed!”的消息:
以下的步骤
在完成我们的应用之前,我们还有不少工作要做... :-)
下一步,是配置我们的应用的总的UI布局结构,在其中安排更多的控件。要做那个,就让我们跳到下一个教程《使用布局管理》。
Silverlight Tutorial Part 2: Using Layout Management
This is part two of eight tutorials that walk through how to build a simple Digg client application using Silverlight 2. These tutorials are intended to be read in-order, and help explain some of the core programming concepts of Silverlight. Bookmark my Silverlight 2 Reference page for more of Silverlight posts and content.
Understanding Layout Management
Silverlight and WPF support a flexible layout management system that enables developers and designers to easily coordinate how controls are positioned within a UI surface. This layout system supports both a fixed position model where controls are positioned using explicit
coordinates, as well as a more dynamic position model where layout and controls can be automatically sized and flowed as the browser resizes.
Developers using Silverlight and WPF use layout panels to coordinate the position and resizing of controls contained within them. The built-in layout panels in Silverlight 2 include three of the most commonly used ones in WPF:
?Canvas
?StackPanel
?Grid
Canvas Panel
The Canvas panel is a pretty basic layout panel that supports positioning controls contained within it using explicit coordinates.
You position elements in a Canvas using a XAML feature called "Attached Properties" - which allow you to specify a control's position relative to its immediate parent Canvas control's Left, Top, Right or Bottom coordinates. Attached properties are useful as they allow a parent panel to extend the property set of a control contained within it. Canvas, by defining an attached property for “Top” and ”Left” basically adds the ability to define left and top atta chment on Button (or any other UI element that is added to the Canvas), without any need to actually add a property to the Button class, or modify the Button class in any way.
We could add two buttons to a Canvas container, and position them both 50 pixels from the left of the Canvas, and 50 and 150 pixels from the top using XAML like below (the Canvas.Left and Canvas.Top attributes are examples of the attached property syntax):
This would then render our buttons like below:
While the Canvas is useful for scenarios where the UI elements contained within it never move, it tends not to be very flexible as you add more controls into it or handle scenarios where the UI needs to resize or move. In cases like these you end up having to manually write code yourself to move things around inside the Canvas (which is a pain). A better solution for these dynamic scenarios is typically to use an alternative layout panel that has built-in semantics
to-do this for you - like the StackPanel and Grid.
StackPanel
The StackPanel control is a simple layout panel that supports positioning its contained controls in either a row or column layout. StackPanels are typically used in scenarios where you want to arrange a small subsection of the UI on your page.
For example, we could use the StackPanel to vertically arrange three buttons on our page using XAML markup like below:
At runtime the StackPanel would then automatically arrange the Button controls in a vertical stack for us like below:
We could alternatively set the "Orientation" property of the StackPanel to be "Horizontal" instead of Vertical (which is the default):
This will then cause the StackPanel to automatically arrange the Button controls in a horizontal row like below:
Grid Panel
The Grid control is the most flexible layout panel, and supports arranging controls in multi-row and multi-column layouts. It is conceptually similar to an HTML Table element.
Unlike an HTML Table, you don't embed controls within column and row elements. Instead you specify a Grid's Row and Column definitions using
For example, we could declare a Grid layout has three rows and three columns, and then position 4 buttons within it using XAML like below:
The Grid layout panel would then position the Button elements for us like so:
In addition to supporting absolute sizing (for example: Height="60") the Grid's RowDefinition and ColumnDefinition controls also support an AutoSizing mode (Height="Auto"), which automatically sizes the Grid or Row based on the size of the content contained within it (you
can also optionally specify maximum and minimum size constraints - which can be very useful).
The Grid's Row and ColumnDefinitions also support a feature called "Proportional Sizing" - which enables the size of a Grid's Rows and Columns to be spaced proportionally relative to each other (for example: you could have the second row grow at 2x the rate of the first one).
You'll find that the Grid provides a ton of power and flexibility - and it will probably be the most common layout panel control you'll end up using.
Using Layout Panels to Arrange our Digg Page
Remember that the goal when building our Digg sample is to create a page that looks like the one below:
To create this layout we'll begin by adding a root Grid panel that has two RowDefinitions within it. The first Row will be 40 pixels high, and the second will fill the remaining space
(Height="*"):
Tip: Notice above how I've set the Grid's "ShowGridLines" property to "True". This will enable us to easily visualize the Row and Column boundaries within the Grid when we test it at runtime:
We'll then embed a second Grid panel control as a child control within the first row of the root Grid panel container, and use it to arrange the top row (the header). We'll create three columns within it - one for the Title, one for the Search TextBox, and one for the Search Button:
Once this is done we have the basic layout arrangement of our Digg search page in place:
Note: As an alternative to nesting Grids, we could have alternatively had one Grid with 3 columns and 2 rows and used the ColSpan/RowSpan feature of the Grid to merge content across multiple columns (similar to how you can do this with HTML tables). I chose to use the nested Grid approach instead because I thought it would be simpler to follow along.
Now that we have the layout setup all we need to-do is add controls to it.
For the header row we'll use the built-in
Note: Below I'm embedding style information (FontSize, Colors, Margins, etc) directly on the controls. Later in this tutorial series I'll show how to use Styles to extract and encapsulate these settings in a separate file (ala CSS) which can then be re-used across the application.
And now when we run our application it looks like below:
Dynamically Resizing our Application
One thing you might have noticed in the XAML above is that our top-level control is currently set to be a fixed width and height:
When set this way our Silverlight Application will always remain that fixed size. Expand the browser and this becomes apparent:
While constraining an embedded application to be a fixed size within a region of an HTML page is useful in some scenarios, for our Digg search application we really want the application experience to automatically flow and resize with the browser - just like an HTML page would.
The good news is that this is easy to implement. Just remove the Width and Height attributes on the root control:
Our Silverlight application will then automatically expand (or shrink) to fill the HTML container it is embedded within. Because the SilverlightTestPage.html file that we are testing our Silverlight application within hosts our Silverlight control in a HTML
基于Silverlight技术的本体编辑器的设计与实现 摘要 本体的构建离不开工具的支持。随着本体在人工智能、语义互联网、电子商务、信息检索和抽取等领域的广泛应用,本体已经成为现在的一个研究热点,涌现出了许多本体构建工具。选择合适的构建工具对于快速、成功地构建一个本体至关重要。 本体编辑工具的多样化和差异化在很大程度上是由知识表示形式与本体描述语言的多样性决定的。各种不同的本体编辑工具各有优势,也都存在一定的问题,缺乏一种占统治地位的,得到领域专家与本体研究者广泛认可的工具。 当前本体编辑工具的主要问题是不同构建工具适用的本体描述文件无法兼容;大多数工具以文件形式存储本体内容,只有少数支持数据库存储;大多数编辑工具不支持本体的重用,及分布式开发。 本文针对目前本体编辑工具所具有的不足,顺应本体编辑工具的发展趋势介绍了一种基于富客户端的本体编辑器的设计与实现。此系统主要实现了本体的图形化浏览和编辑功能。本文的主要工作如下: 概括介绍了本体论的相关理论以及本体研究的现状,通过对现有本体编辑工具的分析,论述了构建新的本体编辑工具的必要性。 总结分析了目前一些本体编辑工具所采用的本体描述语言,大多数是基于OWL的具有自己特色的本体描述语言。这些描述文件只适用于自身 的编辑工具,不同的描述语言无法通用。针对此弊端,概括介绍Web本 体描述语言OWL,采用标准本体描述语言来构建本体,具有更为广泛的 应用性。 简单介绍了系统开发所需要的技术,包括Silverlight和MVC等。详细介绍系统整体架构的设计以及本体库的构建。 实现了本体的图形化浏览和编辑功能。图形表现更加丰富,图形可以拖动,类图可以展开合起,展开显示类的详细信息,包含属性,各种关系 和操作,合起则只显示类的名称信息。实现了多视图地显示,可同时显
Silverlight利用WebService进行增删改查 目录 1 新建空白解决方案SLWebServiceTestSln (1) 2 新建Silverlight应用程序SL5 (1) 3 建立数据模型 (2) 4 Web项目配置 (4) 5 数据转换建立WebService (5) 6 在Silverlight应用程序项目中引用WebService (6) 7 源码 (14) 1新建空白解决方案SLWebServiceTestSln 略 2新建Silverlight应用程序SL5
3建立数据模型 新建数据库TestDB,在库中新建表Students,表脚本如下:CREATE TABLE[dbo].[Students]( [StuId][int]IDENTITY(1,1)NOT NULL, [StuName][varchar](50)NULL, [GradeId][int]NULL, [Age][int]NULL, [Sex][varchar](2)NULL )ON[PRIMARY] 新建Silverlight类库项目DBModels
删除自动生成的Class1.cs。 在SL5项目中引用DBModels。 新建类StuModels.cs
在此文件中新建类Students,内容如下: namespace DBModels { public partial class Students { public int StuId { get; set; } public string StuName { get; set; } public string Sex { get; set; } public int GradeId { get; set; } public int Age { get; set; } } } 4Web项目配置 在站点SL5.Web中,建立App_Code目录,在目录中新建SQLHelper.cs,内容与网上通用的SQLHelper相同,此处不再赘述。
Silverlight 数据验证 本文引用自 https://www.doczj.com/doc/009294034.html,/jv9/archive/2010/09/10/182 2910.html 页面有实例的源代码下载: 说起来Validation验证功能,相信大家都不陌生,在应用中,当需要用户交互输入时,开发人员都会加入一些验证代码,这样可以有效的避免应用异常出现,也可以使应用的错误提示信息清晰明了的显示在客户端,有利于异常定位,同时也提高用户体验。特别是在商业应用项目中,使用Validation功能,可以在数据存入存储设备前,进行格式,以及内容的校验,这样也提高了数据存储的安全性。 下面的https://www.doczj.com/doc/009294034.html,的验证控件演示,是传统Web应用中最常见的验证效果,其中包括Requ ired Field Validator,Range Validator等验证控件,
Ajax Validation: 而Silverlight同样提供类似于https://www.doczj.com/doc/009294034.html,验证控件的支持,在Silverlight Toolkit开源项目中,包含Data Input的Validation演示, 简单数据绑定验证, 下图为ValidationSummary控件演示:
为了帮助大家学习和掌握Silverlight的Validation功能,随后的几篇,我将详细介绍一下S ilverlight的Validation功能,并将结合一些实例演示帮助大家理解Validation验证功能。本系列应用开发环境是: Windows 7 Ultimate 英文版 Visual Studio 2010 Premium 英文版 Expression Blend 4 Premium 英文版 Silverlight 4 Validation验证概述 Validation,是验证,校验的意思,通常发生在用户输入数据后,进行验证判断,以确认用户输入正确信息。在验证的方法中,我们可以简单的从两个验证类型理解Validation,
关于64位win7系统如何解决silverlight安装错误:提示消息ID1603 这几天Lync和silverlight频繁更新小版本,导致我windowsupdate几个补丁总是提示安装失败,其中包括silverlight,上网查找去除提示的方法,则得到一个坑爹答案,重装silverlight 即可,结果重装过后导致我silverlight再也装不上了,折腾了将近两三个小时,总结了网上各方的解决办法,终于在csdn上找到了一篇有用的文章,原文链接 https://www.doczj.com/doc/009294034.html,/lgz1989cn/article/details/7184487,结合笔者的经验,我自己根据自己的情况,做了一个总结 当遇到silverlight安装失败,提示1603时,大部分原因是因为部分组件注册失败造成的,那么解决办法如下: 解包silverlight.exe文件 得到这么几个文件,然后继续解包silverlight.7z,得到一个 然后点击这个软件进行安装,这时他会给你报个详细的错误,我报的错误是在KEY \SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION 这个注册表无法写入,这时我们不要关闭这个错误提示框,继续按照以下步骤进行 这时我们在开始--》运行--》regedit 启动注册表, 查找到后要验证其路径是否为 1、HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION 2、HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION 验证过后就是要查看这个路径下的所有文件夹我们是否都有权限进行完全控制
现有Silverlight程序使用mvvmlight开发框架教程 1)创建Silverlight 应用程序。 2)添加mvvmlight引用,如果使用模板创建,会自动生成引用,而这里我们需要自己添加。 3)添加ViewModels、Locators、Models文件夹。 4)为MainWindow添加ViewModel,在解决方案浏览器中,右键ViewModel文件夹,添加新类,类名称为MainViewModel,如果安装了mvvmlight模板,选择类模板为MvvmViewModel 5)添加类ViewModelLocator,我们叫它ViewModel加载器,在解决方案浏览器中,右键项目名称,添加新类,类名称为ViewModelLocator,如果安装了mvvmlight模板,选择类模
板为MvvmViewModelLocator。 6)打开App.Xaml,先添加ViewModel命名控件引用,然后为ViewModelLocator添加一个全局的资源,app.xaml的内容如下:
为Silverlight 2 创建自定义控件 目录 步骤1:创建新的Silverlight 项目 (2) 步骤2:从控件(或ContentControl)派生 (3) 步骤3:创建控件模板 (6) 步骤4:创建默认控件模板 (8) 步骤5:添加模板绑定 (10) 步骤6:使用ContentPresenter 替换TextBlock (13) 步骤7:添加Click 事件 (17) 步骤8:添加可视状态 (19) 本文基于Silverlight 2 的Beta 2 版本。文中的所有信息均有可能发生变更。 Silverlight? 2 有别于Silverlight 1.0 的众多功能之一是支持控件。Silverlight 2 以丰富且强大可靠的控件模型闻名,该模型是平台中包括的控件和第三方控件包的基础。您也可以使用此控件模型构建自己的控件,但对于不熟悉Windows? Presentation Foundation (WPF) 控件模型的开发人员来讲,第一次构建Silverlight 自定义控件会令人生畏。撰写此专栏时,即在发布Silverlight 2 Beta 2 之前,几乎没有文档可供参考,而在Web 中快速搜索出的少数几篇教程为我指明了方向。虽然我正在讨论此主题,但应该提醒大家的是,我正在使用的Beta 2 在其最终发布之前,可能会做进一步的更改。 在了解如何为新平台编写自定义控件时,我经常先复制一些内置控件:按钮和列表框等等。这些控件可能表面看起来简单,但他们总是揭示了控件模型的关键功能并可以测试人们对这些功能的掌握程度。另外,如果您无法首先创建一个简单的按压按钮,则无法创建super-duper-multicolor-multithreaded-all-in-one-do-it-all 小组件控件。
数据验证 一.数据验证方式 可以使用以下任一种方式实现验证 1.Exception 需要将Binding的ValidatesOnExceptions设为true,当访问数据对象的Set访问器并抛出异常时验证不通过
尼克克莱尔(Nick Kramer), 微软公司–2010 四月
目录 1.简介 ..............................................................................................................错误!未定义书签。 2.如何保护Silverlight的最终用户不受恶意网站的侵害 (3) 2.1.沙箱的功能和限制 (4) 2.2.网络 (5) 2.3.浏览器外的应用程序 (6) 2.4.Silverlight的安装与更新 (7) 2.5.实施沙箱 (7) 3.使用Silverlight创建安全的Web站点 (7) 3.1.跨站点脚本 (XSS) (7) 3.2.从HTML / JavaScript中隔离Silverlight (8) 3.3.从Silverlight代码中分离其他Silverlight代码 (9) 3.4.Silverlight应用程序之间的数据传送 (9) 3.5.防止未经授权的重用你的.xap文件 (9) 3.6.服务端输入验证 (10) 3.7.对.xap文件的信息保护 (10) 3.8.独立存储的数据保护 (10) 3.9.受信任的应用程序的注意事项 (10) 3.10.使用保障安全的API (12) 4.结论 (12) 5.附加资源 (13)
1.简介 Silverlight是功能强大的开发平台,能够增强各种应用程序(Web、桌面或移动等应用程序)中的 用户体验、交流与互动。 Silverlight是一个免费的插件,内置了.NET框架并兼容多种浏览器、设 备和操作系统,给用户带来Web领域新一代的用户体验与交互理念。 在Web浏览器中,Silverlight应用程序内嵌在一个HTML页面中,由一个
Silverlight 5 轻松开启绚丽的网页3D世界2—使用Toolkit开发3D Web应用 前文已经提到通过Silverlight Toolkit (December 2011) for Silverlight 5,可以开发出基于XNA的3D Web应用。但很多开发人员还是遇到了很多问题,现在我就一步步带大家看如何进行基于Silverlight Toolkit 3D App的开发。 1.搭建Silverlight 5 开发环境,确保你的VS是2010 SP1以上版本,如果是 中文版,可以参照此文进行Silverlight 5 Tools 的安装。 2.安装Silverlight Toolkit (December 2011) for Silverlight 5,你可 以在这里下载。 3.如果你的VS是中文版,在新建Silverlight项目时,是看不见以下三个项 目模板。 原因是Silverlight Toolkit将项目模板安装到了英文语言目录下,这时需要我们自己将项目模板从英文语言目录拷贝到中文语言目录下,然后重建VS环境,具 体做法如下: 1)进入VS安装目录(默认路径为:C:\Program Files\Microsoft Visual Studio \Common7\IDE),进入\ProjectTemplates\CSharp\Silverlight目录, 然后找到英文语言目录1033,在这个目录下有Silverlight Unit Test 、、三 个项目模板文件。 2)拷贝以上三个文件到中文语言目录2052。 3)通过CMD命令行,进入VS安装目录(默认路径为:cd C:\Program Files\Microsoft Visual Studio \Common7\IDE) 4)执行devenv /setup 5)执行devenv /installvstemplates 6)现在打开VS2010就可以新建上图中的三种项目。
Silverlight教程第一部分:使用Silverlight2和VS2008创建“Hello World”程序 这是8个系列教程的第一部分,这系列示范如何使用Silverlight2的Beta1版本建造一个简单的Digg客户端应用。这些教程旨在按顺序阅读,帮着解释Silverlight的一些核心编程概念。 使用VS2008创建一个新的Silverlight应用 我们来开始我们的Digg应用的开发,先选择Visual Studio2008中的文件->新项目菜单项,使用新项目对话框创建一个“Silverlight Application”(注:你需要在Beta1发布后,下载和安装VS2008的Silverlight工具才能得到这个支持): 我们将该项目命名为“DiggSample”。在点击OK按钮后,Visual Studio会显示另外一个对话框,允许我们选择我们是否只要创建一个Silverlight应用项目,或者还要加一个服务器端的https://www.doczj.com/doc/009294034.html, Web项目到包含Silverlight应用的解决方案里去:
在这个例程里,我们将选择还要添加一个https://www.doczj.com/doc/009294034.html, Web Application项目到解决方案里去,并将它命名为“DiggSample_WebServer”。在点击OK之后,Visual Studio会为我们创建一个解决方案,里面包含一个Silverlight客户端应用和一个https://www.doczj.com/doc/009294034.html, web服务器端应用: 如果我们做一次编译的话,Visual Studio会自动把编译好的Silverlight应用拷贝到我们的web服务器项目中去,不需要手工的步骤或配置。VS为我们创建的默认的web服务器项目包含一个https://www.doczj.com/doc/009294034.html,网页和一个静态的HTML网页,我们可以用来运行和测试其中的Silverlight应用。
解决Silverlight无法调试的问题 解决Silverlight无法调试的问题 本文来自Kevin Yang博客作者:Kevin Yang 问题描述 在Silverlight开发过程中,经常时不时的会碰到Silverlight无法调试的问题。我就遇到下面几种情况: 1. Web Application+Silverlight,F5进入调试状态之后无法跟进Silverlight程序中下的断点 2. 项目中有两个Silverlight工程,其中一个Silverlight程序中有一个鼠标点击事件会将当前页面导航到另外一个Silverlight程序的承载页面。第一个Silverlight程序断点正常,但是第二个Silverlight程序中的断点不能自动停下来 3. 无论是在TestPage模式下调试还是在Web工程上调试,只要打开了Silverlight调试开关,那么启动的时候会提示“Unable to start debugging. Cannot locate Microsoft Internet Explorer”。如果你是直接Ctrl+F5运行,有时候也会出现一样的问题。 单个Silverlight工程无法调试 对于第一个问题,请检查如下设置是否正确: 1. 确认启用了Silverlight调试。双击https://www.doczj.com/doc/009294034.html,工程中的属性文件夹打开属性设置页,找到Web一栏,在此页卡的最下面有几个调试选项,如下图所示: 确认最后一项“Silverlight”之前的勾是勾上的。 2. 确保浏览器访问的Xap包是最新的。检查IE是否已经清除了缓存,或者ClientBin中的Xap因为某些原因没能更新(如因配置管理导致无法覆盖) 3. 检查https://www.doczj.com/doc/009294034.html,工程是否绑定了Silverlight应用。可以通过https://www.doczj.com/doc/009294034.html,工程的属性面板中的Silverlight Application 页卡查看是否绑定成功。如下:
出于安全的考虑,在Silverlight中我们不能随心所欲的读写客户端本地的文件系统。这样不论对客户端还是程序员都是有着安全上的好处的。 在实际操作中,我们能够通过给客户端呈现"打开文件"的对话框,由客户端自己来选择所想要打开的文件,在这种情况下,你的Silverlight应用程序就可以打开这个指定的文件(并且只能打开这种情况下指定的文件) 本文我们就实践这一功能。 还是如前面的文章所述,我们首先要建立一个新的Silverlight应用程序,我们把它命名为ReadLocal FilesInSL。 Page.xaml文件的代码内容如下: 这是8个系列教程的第七部分,这系列示范如何使用Silverlight 2的Beta1版本建造一个简单的Digg客户端应用。这些教程旨在按顺序阅读,帮着解释Silverlight的一些核心编程概念。 如何定制控件的观感(Look and Feel)WPF和Silverlight编程模型中一个强大无比的功能,就是能够完全定制所使用的控件的观感(Look and Feel )。这允许开发人员和设计师对控件的界面以微妙和戏剧性的方式进行精雕细琢,促成无比的灵活性以创建出恰如所愿的用户体验。 在这篇教程里,我们将看一下你可以定制控件的几种方式,然后在结尾使用这些技术对我们的Digg应用的用户界面润色一下。 定制控件的内容在这个系列的第一部分里,我们在页面上加了一个简单的按钮控件,示范了如何把它的内容设成一个自定义的“Push Me!”文字字符串。然后我们连接了一个Click事件处理函数,在它被点击时执行一些代码: 这导致按钮在浏览器里象下面这么显示: 关于按钮控件,也许会让你感到惊奇的一件事情是,它的Content属性,不必是象“Push Me!”这样简单的字符串。实际上,我们可以把Content属性设成我们想要的任何形状或控件序列:譬如,我们可以嵌入一个StackPanel,内含 我们也可以使用形状控件(象下面这样的Ellipse控件)来在按钮里面创建自定义的矢量图像: 注意上面我是怎么使用一个偏移RadialGradientBrush来加一个非常好看的反射式光泽来填充Ellipse控件的: Silverlight跨域,Silverlight在IIS 中部署等问题解决方法 一:Silverlight 跨域 Silverlight在设计的时候对网络安全方面做了很多考虑,具体可以看Silverlight SDK。 跨域通信是通过在其他域的根部署使用正确跨域策略文件的 Web 服务,可以在该域中启用基于 Silverlight 的应用程序要调用的 Web 服务。 Silverlight 支持两种类型的跨域策略文件。 ? Silverlight 跨域策略 (clientaccesspolicy.xml) ? Flash 跨域策略 (crossdomain.xml) 的子集 使用跨域策略文件的跨域通信 通常,如果基于 Silverlight 的应用程序检测到其请求是一个跨域请求,将首先在 Web 服务的应用程序根处查找 Silverlight 跨域策略文件 (clientaccesspolicy.xml)。如果这个请求导致"404 未找到"或其他错误,应用程序将在应用程序根处查找 Flash 跨域策略文件 (crossdomain.xml)。不允许重定向跨域策略文件。此外,跨域策略文件保持对应用程序会话有效。 现在知道了只要在网站中部署一个跨域策略文件,就可以解决Silverlight跨域请求问题。跨域策略文件要放在哪里? 注意:跨域策略文件必须也只能放在网站的放置在根目录下。 clientaccesspolicy.xml配置: 随着Silverlight技术的逐步完善,Silverlight应用大批的涌现,近期的2010年冬季奥运会,Silverlight作为首选视频播放技术,为全球提供在线赛事实况。 Silverlight技术的发展需要更多的开发人员加入,作为Silverlight技术的支持者,我把平时Silverlight开发中使用的工具进行一次总结,希望对大家能有所帮助。 Silverlight开发工具包(必装): 在银光中国网有篇“轻松建立Silverlight开发环境”,该文详细介绍了Silverlight工具集下载,以及安装步骤。我简要列出,另外做一些补充: 工具一:Visual Studio 2008 SP1或者Visual Studio 2010或者Visual Web Developer Express 2008 With SP1; Visual Studio是Silverlight的开发必需工具,其中VS2008 SP1和Visual Web Developer Express With SP1仅支持Silverlight 3的开发,而VS2010支持Silverlight 3和Silverlight 4项目开发。在安装Visual Studio的同时,.Net Framework 3.5 SP1也将同时安装,如果没有安装,需要独立下载安装。Silverlight 4项目开发,必须有.Net Framework 4.0支持。 工具二: Silverlight开发工具包 Silverlight开发工具包中包含各种Silverlight开发模板,安装完成后,可以在Visual Studio 中创建Silverlight项目。对应下载地址Silverlight 2 Tools for Visual Studio 2008 SP1和Silverlight 3 Tools for Visual Studio 2008 SP1,Silverlight 4 Tools for Visual Studio 2010 Beta 2。 工具三: Silverlight SDK 作为专业开发人员,自然离不开Software Development Kit(SDK)支持,Silverlight同样也推出了对应的SDK包,其中包含在线开发文档,在线Silverlight例程,开发类库等。Silverlight 3 SDK和Silvelright 4 S DK。 工具四:Expression Blend 3 + SketchFlow - Silverlight设计工具 最新Silverlight 安装失败提示消息 ID 1603 的解决方法@zjiuzi 消息 ID: 1603 安装过程中出现错误。请执行以下步骤 原因是在以前安装过silverlight,没有安装成功或者没有彻底卸载干净,遗留了一些文件,尤其是安装时突然中断的时候会出现这个问题。 方法1 运行reg delete HKLM\Software\Microsoft\Silverlight /f 重启机器在安装 silverlight 。。。。问题解决。。。 方法二: 当你手动安装silverlight失败时他会弹出一个对话框,这时请不要点击关闭按钮,请找到silverlight安装程序的路径,这时你会发现在当前路径下多了一个临时的文件夹(或者文件所在分区的第一层目录中,若实在找不到,则可以用搜索的方法,搜索silverlight.msi来找到该目录),名字应该是随机产生的如图: 然后你打开这个文件可看到: 这时你将silverligt.msp解压到当前文件夹,这时就会出现个文件 然后点击这个软件进行安装,这时他会给你报个详细的错误,我报的错误是在KEY \SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION 这个注 册表无法写入 这时我们在开始--》运行--》regedit 启动注册表,然后按Ctrl+F按键进行搜索,我输入的关键是Main 查找到后要验证其路径是否为SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION 一般在HKEY_CURRENT_USER\Software 或 HKEY_LOCAL_MACHINE\SOFTWARE 下,若没找到具体的子项 FEATURE_BROWSER_EMULATION 也可以给其父项授权(这个非常重要)验证过后就是要查看这个路径下的所有文件夹我们是否都有权限进行完全控制 如果没有请将允许项打钩再点击应用和确定,重复上述步骤直到确定上述路径的所有文件夹你都有权限访问 这时可回到刚刚弹出错误的对话框,他有个retry按钮,点击它,如果没有效果则回到注册表界面进行以下步骤: 选择编辑--》查找下一个(或者直接按F3键)如果查找到新的则重复上述步骤直到其弹出对话框: 在Windows 2003 IIS 6.0环境下在Silverlight中需要使用xap、XAML文件类型,如果您想在IIS服务器上使用Silverlight 4.0程序,所以必须在IIS中注册 xaml和xap的MIME文件类型。 打开IIS->站点属性->HTTP头->MIME类型->新建: 扩展名: .xap MIME类型:application/x-silverlight 扩展名: .xaml MIME类型:application/xaml+xml 在Windows Server 2008 IIS 7.0环境下 所有支持Silverlight运行所需要的所有MIME类型都被Windows 2008 IIS 7.0和Windows Vista RTM默认支持。Windows Vista RTM客户可以通过“IIS管理器”添加MIME 类型,单击“MIME类型”然后点击“添加”并添加如下MIME类型: .xap application/x-silverlight-app .xaml application/xaml+xml .xbap application/x-ms-xbap 当然,你还可以通过添加如下MIME类型到环境的%windir%\system32\inetsrv\con**\applicationHost.con**文件的配置节中。 在IIS6+Framework4.0上部署Silverlight4+WCF应用程序 整个过程我们分为两部分来完成:第一步,在VS2010中发布应用程序,将需要部署到服务器上的内容发布到一个指定的文件夹;第二部,在服务器上进行部署和配置。我们先来做两个假定如下: ● 假定Web服务器地址(站点浏览路径):http://192.168.8.102 ● 假定数据库服务器地址:192.168.8.101 下面我们就这两个步骤,进行详细说明: 搭建Silverlight 5中文开发环境 Silverlight 5已于美国时间2011年12月9日正式发布,其在Silverlight 4 的基础上新增了40 多个新功能,完善了媒体支持并提供了更加丰富了用户界面。这个版本带来了很多改进,大家可以通过官方列表了解详情,或者点击此网页查看来自Pete Brown的多个视频介绍,或者点击此示例网页来体验。 下面是对Silverlight 5新增功能的简要总结: ?增强数据绑定功能,包括上级绑定、隐式数据模板、自定义标签扩展等 ?新增3D图形类库,主要引入轻量级XNA 3D功能,该框架目前是XBOX游戏的 主要开发框架,这也使得3D图形可以轻松地在Web网页中呈现 ?改进多媒体功能,包括使用XNA的声效库、支持H.264媒体硬件解码、变速播放、 遥控器的按键支持(主要针对Live TV)等 ?增强文本功能,包括文本清晰度优化、文本块间漂移、矢量打印等 ?新增与操作系统的集成,包括支持P/Invoke调用外部程序、多窗体、在完全信任 模式下无限制的文件系统访问、支持SaveFileDialog和OpenFileDialog的默认文件名、64位浏览器支持等 ?优化整体性能,包括网络延迟的改进、使用TPL并行任务、解析器的性能改进、 为改善启动时间的多核心JIT等 ?增强控件,包括双击与多击的支持、加入PivotViewer、ComboBox增强等 ?提高开发效率,包括XAML调试与数据绑定调试、团队测试的支持等 现在,Silverlight开发者可以点击下载正式版Silverlight 5 T ools和Silverlight 5T oolkit(12月版)。可惜的是目前官方只发布了英文版开发包,按照惯例中文版一般要等到3-5个月之后才会发布,如果您使用的Visual Studio 2010是中文版,在安装时会出现语言不符的提示,但我们有办法将英文版开发包安装到中文开发环境中。下面是如何搭建Silverlight 5中文开发环境的具体步骤: 1.首先确认您的Visual Studio 2010已经升级到SP1 2.解压下载下来的Silverlight5_T ools.exe(winrar 或者7-zip均可); 3.在解压后的目录中,打开ParameterInfo.xml,替换所有1033为2052,保 存;SilverLight教程7
Silverlight跨域在IIS中部署等问题解决方法
silverlight工具集合
最新Silverlight 安装失败 提示 消息 ID 1603 的解决方法zjiuzi档
IIS下配置SilverLight
搭建Silverlight 5中文开发环境