Silverlight常见基本问题.doc
Silverlight探秘系列课程 Silverlight调试、错误处理和异常
Silverlight 系列课程39讲 Silverlight 调试、错误处理和 调试 错误处理和 异常苏鹏 MVP MSDN 特约讲师下载Webcast好帮手iR iReaper文件大小<=2.5Mb 可按照多种分类方式进行批量下载WMV、MP3、MP4、Zune四种格式Webcast访问iReaper主页: /iReaper h d l i加速企业解决方案部署尽在资源和利益• 用于解决方案开发的集中资源 用于解决方案开发的集中资源:资源包括指向测试工具、开发 资源包括指向测试工具 开发 人员 SDK、技术论坛、联机培训等的链接,微软全球技术支持中 心( (GTSC) )的邮件技术支持。
• 对市场调查的访问权限:您可以使用这些宝贵信息来识别您当 前的客户或未来客户的特定需求。
• 认证徽标计划:该徽标可以向客户证明您所具有的优秀技术。
• 市场营销和销售支持 h OMetro – ISV领航计划最先应用微软最新技术 提升ISV 提升 ISV竞争优势和商业价值 竞争优势和商业价值• Metro 提供了结构化的支持来帮助ISV进行新技术的评估和 部署 部署: Discover – 参与前沿技术培训 – 评估最新的微软技术及产品 Release Learn – 获取微软Beta版产品的技术支持 – 联络全球开发人员和架构师社区 – 与世界级的商务和技术社区分享最先 Develop 部署的经验点击添加MSN机器人小新 为您收听下载MSDN中文网络广播课程加油助力!收听本次课程需具备的条件• 了解 解SilverLight应用基础 应 础 • 了解.NET NET 的错误处理基本原理Level 200内容介绍• • • • 调试概括 试 括 错误处理 处理和引发异常 总结Level 300调试概述• 讨论 Silverlight Tools for Visual Studio 2008 可帮 调试 Silverlight g 的应 的应用程 程 ,它可帮助您调试基于 序。
Silverlight学习帮助
一.Silverlight学习 (2)1.1 Silverlight概述 (2)1.2 Silverlight 结构 (3)1.2.1 Silverlight平台 (3)1.2.2 Silverlight 结构 (3)1.2.3 核心表示层组件 (4)1.2.4 NET Framework for Silverlight (4)1.2.5 附加Silverlight 编程功能 (5)1.3 Silverlight 3.0 环境的搭建 (6)二.开始第一个Silverlight工程 (6)2.1 Silverlight 应用程序项目文件 (8)2.1.1 Silverlight 应用程序项目包含以下配置、程序集引用和代码文件: (8)2.1.2 Silverlight 应用程序项目将包含对以下程序集的引用: (8)2.2 工程示例 (9)2.2.1 Silverlight工程的独立运行 (11)2.2.2 Silverlight中XAML页面的导航 (11)三.Silverlight的特点分析 (12)3.1 Silverlight 3概述 (13)3.2 Silverlight 3 特点之增强媒体特性 (13)3.3 Silverlight 3特性之强化丰富的体验 (14)3.4 Silverlight 3特性之提高富互联网应用的效率 (14)3.5 Silverlight 3增强特性之其它 (15)3.6 Expression Blend 3中的新特性 (15)四.Deep Zoom Composer (16)4.1 Deep Zoom技术原理简介 (16)4.2 开始第一个Deep Zoom Composer应用 (17)4.2.1 建立Deep Zoom图片 (18)4.2.2 将Deep Zoom图片添加到Silverlight工程 (20)4.3 Deep Zoom Composer正式版的特点分析 (21)4.3.1 Deep Zoom Composer正式版的特点之容易的交互式Deep Zoom体验 (22)4.3.2 Deep Zoom Composer正式版的特点之追踪分析 (22)4.3.3 Deep Zoom Composer正式版的特点之增强的DeepZoomPix播放器 (23)4.3.4 Deep Zoom Composer正式版的特点之让你的导出走得更远 (24)4.3.5 Deep Zoom Composer正式版的特点之更新的UI (24)4.3.6 Deep Zoom Composer正式版的特点之支持Smooth Streaming (24)五.JSON-RPC (25)5.1 JSON数据格式 (25)5.2 JSON数据格式转换 (25)5.2.1 JSON在java中的数据转换 (25)5.2.2 JSON数据格式在Silverlight中的转换 (26)5.3 JSON-RPC (27)5.3.1 JSON传输协议 (27)5.3.2 Silverlight对基于Http的服务发出请求 (27)一.Silverlight学习1.1Silverlight概述Microsoft Silverlight 是一种跨浏览器、跨平台的.NET Framework 实现,用于为Web 生成和提供下一代媒体体验和丰富的交互式应用程序(RIA)。
Silverlight学习笔记1
简单了解 Silverlight 平台
在开始了解 Silverlight 平台前,请看看先前章节中提到的 xap 包.你可以将 Hello word application(也许你完成了,如果没有你可以建立一个新的,直接编译就可以了)项目中位于 ClientBin 文件夹下的 HelloWorld.xap 复制到任何一个地方,将其后缀名由 xap 改成 zip.然 后用工具打开看看所谓的程序包里到底装了写什么东西. 如果你做的程序足够简单你会看到两个 文件 AppManifest.xaml 和 HelloWorld.dll 文件,这些文件会被下载到客户端,然后被客户端 runtime 运行. 这里经历了几个步骤:
解决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调试。
双击工程中的属性文件夹打开属性设置页,找到Web一栏,在此页卡的最下面有几个调试选项,如下图所示:确认最后一项“Silverlight”之前的勾是勾上的。
2. 确保浏览器访问的Xap包是最新的。
检查IE是否已经清除了缓存,或者ClientBin中的Xap因为某些原因没能更新(如因配置管理导致无法覆盖)3. 检查工程是否绑定了Silverlight应用。
可以通过工程的属性面板中的Silverlight Application 页卡查看是否绑定成功。
如下:4. 检查Silverlight工程的StartupObject是否设置正确。
Silverlight入门总结
实现双向绑定的BOOK类
实现INotifyPropertyChanged接口—使得 属性值一有变动就会通知所绑定的客户 端。 属性设置添加: NotifyPropertyChanged("BookTitle"); 实现INotifyPropertyChanged接口
实现接口
public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } }
结果如图
放映完毕
谢谢大家! 祝:2010年工作顺利!
打开VS2008,新建—项目—选择Silverlight应用程序
建立Silverlight项目
创建我们第一个项目,下一步
开发环境
预览窗口
编写XAML脚本
解决方案资源管理器
Silverlight应用程 序(客户端)
网页(服 务器端)
注意事项
“预览”窗口不具备互动性,并不 是交互式设计界面,设计时需将 控件从工具箱拖放到XAML视图 利用Microsoft Expression Blend 设计界面 可以在客户端的XAML页面,右 键选择“在Expression Blend中 打开”,进入设计模式。
示例总结
1、将详细页的所有控件组合成Canvas,并设x:Name=“Detail” 2、将所要显示信息的TextBox与每个字段绑定 Text="{Binding Mode=TwoWay, Path=Author}“
控件入门Silverlight
控件入门Silverlight控件的设计是一致的。
当了解一种控件类型的基础知识后,使用其他控件就很容易了。
例如,向应用程序添加控件、更改控件外观以及处理控件事件对于所有Silverlight 控件都是类似的。
如果您使用的是Visual Studio 2010,则可以通过用于Visual Studio 的Silverlight 设计器轻松完成所有这些任务。
还可以使用XAML 或代码完成这些任务。
本主题介绍Silverlight 控件之间共享的一些控件任务。
说明:本主题包括下列各节。
∙向应用程序添加控件∙使用属性更改单个控件的外观∙使用样式更改多个控件的外观∙创建控件事件处理程序∙相关主题向应用程序添加控件可以在XAML 或代码中,或通过使用Silverlight 设计器向应用程序添加控件。
如果希望在代码隐藏文件中引用该控件,则必须通过在XAML 声明中使用x:Name 属性为控件指定名称。
有关更多信息,请参见x:Name 属性。
当您使用Silverlight SDK 或Silverlight 工具包中的控件时,必须引用正确的程序集,并且必须在XAML 文件中添加一个命名空间映射。
使用设计器的一个优势是:当您从工具包中拖动控件时,将自动添加程序集引用和命名空间映射。
如果您在XAML 或代码中添加控件,则必须手动添加程序集引用和命名空间映射。
有关XAML 命名空间映射的更多信息,请参见Silverlight XAML 命名空间以及将XAML 命名空间映射为前缀。
使用设计器将控件添加到应用程序1.在“工具包”中,找到要使用的控件。
下图显示Silverlight 工具包的一个示例。
2.双击控件以将其添加到设计图面。
- 或-将控件拖到设计图面上的所需位置。
使用XAML 将控件添加到应用程序1.如果需要,请在解决方案资源浏览器中添加对程序集的引用。
2.如果需要,请在XAML 文件中添加一个命名空间映射。
3.在XAML 中声明控件。
使用Silverlight入门
创建您的第一个应用程序我们需要做的第一件事情是启动Visual Studio并创建一个新的项目。
在您启动Visual Studio,选择“新建项目”菜单中选择:文件- >新建- >项目这将打开“新建项目”对话框中。
在左侧的“模板”列表中,选择Visual C#中(Visual Basic中也可),然后Silverlight的。
然后选择“项目类型的Silverlight应用。
现在的名字你的项目的HelloWorld,然后选择确定。
接下来打开的对话框中询问您是否要创建一个新的网站,或简单地用一个测试页。
对于本示例中,取消选择“在一个新的网站主机的Silverlight应用程序”。
我们将使用“测试页”选项。
开发Silverlight应用程序时,在使用“网站”选项有一些好处,但这个例子中,测试页就足够了。
这是有创造一个新的Silverlight项目。
下一步我们将添加一些功能的应用程序。
如果您没有看到解决方案资源管理器(通常在右侧窗口),您可以从“查看” - >“解决方案资源管理器。
在解决方案资源管理器中,有一些项目文件。
我们将在此QuickStart中使用的文件MainPage.xaml 中和MainPage.xaml.cs 。
如果您不熟悉使用XAML,XAML是一种基于XML的声明性语言,用于创建和布局的UI元素。
请参阅XAML快速入门上的XAML的更多信息。
cs文件是在C#代码隐藏文件。
通过局部类代码隐藏文件是同一个XAML文件。
代码隐藏和局部类的更多信息,请参见代码隐藏和分部类MSDN文章。
从代码中分离的用户界面,允许您创建声明XAML标记可见的用户界面元素,然后使用一个单独的代码隐藏文件,以响应事件和操作您在XAML中声明的对象。
这种分离使得它很容易为设计人员和开发人员一起工作,有效地在同一项目。
双击上MainPage.xaml中。
这将在主编辑器窗口中打开MainPage.xaml文件。
SilverLight基础教程
这是8个系列教程的第一部分,这系列示范如何使用Silverlight 2的Beta1版本建造一个简单的Digg客户端应用。
这些教程旨在按顺序阅读,帮着解释Silverlight的一些核心编程概念。
使用VS 2008 创建一个新的Silverlight 应用我们来开始我们的Digg应用的开发,先选择Visual Studio 2008 中的文件->新项目菜单项,使用新项目对话框创建一个“Silverlight Application”(注:你需要在Beta1发布后,下载和安装VS 2008的Silverlight工具才能得到这个支持):我们将该项目命名为“DiggSample”。
在点击OK按钮后,Visual Studio 会显示另外一个对话框,允许我们选择我们是否只要创建一个Silverlight应用项目,或者还要加一个服务器端的 Web项目到包含Silverlight应用的解决方案里去:在这个例程里,我们将选择还要添加一个 Web Application 项目到解决方案里去,并将它命名为“DiggSample_WebServer”。
在点击OK之后,Visual Studio 会为我们创建一个解决方案,里面包含一个Silverlight 客户端应用和一个 web 服务器端应用:如果我们做一次编译的话,Visual Studio 会自动把编译好的Silverlight 应用拷贝到我们的web服务器项目中去,不需要手工的步骤或配置。
VS为我们创建的默认的web服务器项目包含一个网页和一个静态的HTML网页,我们可以用来运行和测试其中的Silverlight应用。
注:Silverlight应用可用于任何web服务器(包括Linux上的Apache),宿主于静态HTML文件或者任何服务器端生成的网页(包括PHP, Java, Python, Ruby等等)中。
在这个Digg样例中,我们不会写任何服务器端的代码,而是将使用Silverlight 的跨域networking功能,来直接访问Digg服务的API。
WCF服务以控制台程序为宿主时Silverlight的跨域访问问题
WCF服务以控制台程序为宿主时的跨域访问问题前几天研究SilverLight时碰到了这个问题,本以为很轻松的试验结果很不顺利,查了很多资料才解决了这个问题,在此把解决问题的方法写出来,也方便其它朋友借鉴。
问题是这样产生了,我在测试SilverLight时为了测试与WCF的通讯,创建了一个控制台的应用程序做为WCF服务的宿主程序。
同时创建了一个SilverLight应用程序和一个承载SilverLight的Web程序.解决方案如图:控制台程序:1.添加WCF服务命名为WCFService.cs,并添加服务,代码如下:namespace WCFBase{// 注意: 如果更改此处的类名"WCFService",也必须更新App.config 中对"WCFService" 的引用。
public class WCFService : IWCFService{public int DoWork(int a,int b){return a + b;}public int DoWork2(int a, int b){return a - b;}}}系统会自动添加App.config文件和相关配置节信息内容如下:<?xml version="1.0" encoding="utf-8" ?><configuration><system.serviceModel><serviceHostingEnvironment aspNetCompatibilityEnabled="true"/><behaviors><serviceBehaviors><behavior name="WCFBase.WCFServiceBehavior"> <serviceMetadata httpGetEnabled="true" /><serviceDebug includeExceptionDetailInFaults="false" /></behavior></serviceBehaviors></behaviors><services><servicebehaviorConfiguration="WCFBase.WCFServiceBehavior" name="WCFBase.WCFService"><endpoint address="" binding="basicHttpBinding" contract="WCFBase.IWCFService"><identity><dns value="localhost" /></identity></endpoint><endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /><host><baseAddresses><addbaseAddress="http://localhost:9090/WCFService/" /></baseAddresses></host></service></services></system.serviceModel></configuration>2.加载WCF服务打开主程序入口Main方法,代码如下namespace WCFBase{class Program{static void Main(string[] args){ServiceHost host = new ServiceHost(typeof(WCFService));host.Open();Console.WriteLine("I'am Here.");Console.ReadKey();host.Close();}}}至此运行该控制台程序,WCF服务启可使用。
severlight报错解决方法
Severlight报错及解决方法安装失败原因一:Windows Installer 没有启动解决办法:点开始>运行,输入 cmd ,xp 下直接回车进入 dos 界面(如果是 win7 ,输入cmd后右击,选择"以管理员身份运行)进入Dos界面后,一行一行的执行下面的命令(就是一行一个回车):msiexec /unregservermsiexec /regservernet start msiserver执行完上面的命令后,再运行Silverlight安装安装失败原因二:如何在注册表清除卸载不掉的Severlight解决办法:1.点击电脑左下方的开始----运行2.输入 regedit 点击确定,打开注册表3.一次展开HKEY_CLASSES_ROOT----- INSATLLER ----- PRODUCTS 找到{D7314F9862C648A4DB8BE2A5B47BE100} 并删除 D7314F9862C648A4DB8BE2A5B47BE1004.重新安装或卸载即可。
安装失败原因三:silverlight 安装成功,访问站点报错代码1001、4004、8008,原因:silverlight运行的字体系统中没有解决办法:添加字体,将正常运行silverlight的Windows Xp 系统下字体拷贝到出错的的电脑上。
将字体包解压缩覆盖到系统的字体库中,关闭浏览器,重新输入网址。
《1》打开控制面板找到字体《2》将字体包中的字体覆盖到如下文件夹下,如果覆盖过程中提示已经存在,则跳过。
安装失败原因四:silverlight 安装成功,提示此信息(IE版本过低,silverlight可能不兼容)解决办法:安装一个新的IE7及IE7以上版本。
安装失败原因五:电脑装不了Silverlight,显示错误码1603解决办法:1.在“添加删除程序”中卸载已安装的silverlight,虽然提示安装失败,但添加删除程序中已经存在一个 silverlight 而且大小很小和完整安装的不一样 ,要卸载掉注意:(1)使用系统的卸载工具,不要使用360等(2)如果在添加删除程序中找不到silverlight 可以尝试在“运行”输入“reg delete HKLM\Software\Microsoft\Silverlight /f rmdir /s /q ”%ProgramFiles%\Microsoft Silverlight“删除。
Silverlight跨域在IIS中部署等问题解决方法
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配置:<?xml version="1.0" encoding="utf-8"?><access-policy><cross-domain-access><policy><allow-from><domain uri="*"/></allow-from><grant-to><resource path="/"include-subpaths="true"/></grant-to></policy></cross-domain-access></access-policy>crossdomain.xml配置:<?xml version="1.0"?><cross-domain-policy><allow-access-from domain="*" /></cross-domain-policy>二:Silverlight 在IIS 部署用silverlight开发的程序,部署到IIS 上,会经常弹出“Sys.InvalidOperationException: InitializeError error#2104 in control 'Xaml1': 无法下载 Silverlight 应用程序。
Silverlight面试题(选择题)
课程名称:Silverlight (A )卷专业: 年级: 姓名:_______________ 学号:_________________ 考试(考查) 闭卷题号 一 二 三 总分 分数一、基础题(每题2分)1. 以下关于Silverlight 应用程序的特点的说法,错误的是(D ) A 支持丰富的数据格式和网络通信方式 B 高质量的视频和音频C 使用现有的编程工具和.NET Framework 编程模型D 和Flash 一样,不支持搜索引擎优化(SEO)2 以下关于Silverlight 应用程序的结构的说法,正确的是(A )A Silverlight 应用程序必须有一个派生自Application 的类,负责初始化应用程序B Silverlight 应用程序最终编译成.xap 文件 ,该文件符合W3C 的XML 标准 、、Xaml 文件符合 C Silverlight 应用程序中必须有一个Page 类,用于显示用户界面D Silverlight 应用程序必须运行在Aspxyem 环境中3 以下关于Silverlight 应用程序的生命周期的说法,错误的是( B) A Silverlight 应用程序必须运行在本身的Runtime 环境中B 先在客户端创建应用程序的执行环境,再下载Silverlight 应用程序包(.xap 文件)C 如果用户浏览器没有安装Silverlight.exe,则会提示用户下载安装D 在Silverlight 应用程序运行前,允许用户自定义启动画面4 以下关于XAML 的依赖属性的说法,错误的有是( A)A 依赖属性的访问方式与其他属性没有区别,通过"."运算符访问B 依赖属性必须由Static 修饰--------------------------------------装--------------------------------------订------------------------------线----------------------------------------C 依赖属性可以节约资源D 依赖属性必须使用DependencyProperty.Register()实现注册5 以下不属于XAML特性的是(D )A XAML 中的元素(标记)都对应.NET Framework中的某个类型B XAML 可以创建节点树C XAML 中通过元素和元素属性实现的功能都可以使用后台代码实现D XAML 中的元素不能被继承6 以下关于内容控件的说法,正确的是(A )A 内容控件都具有Content属性B ContentControl类直接派生自FormworkElement类C Border是内容控件D TextBlock是内容控件7 以下关于Grid控件的说法,错误的是( D)A Grid控件中的<RowDefinition>具有Height属性而没有Width属性B Grid控件中的<ColumnDefinition>具有Width属性而没有Height属性C Grid控件的布局作用类似于HTML中的<table>D Grid控件中必须有行和列的定义,才可以放置其他控件8 以下关于DataContext属性的说法,错误的是( C)A DataContext属性可以被一个元素的内部元素继承B 每个元素都具有DataContext属性C 如果父元素和子元素都具有DataContext属性,则父元素会覆盖子元素的属性值D 非列表控件在设置了DataContext属性之后才可以进行数据绑定9 以下关于数据绑定的描述,错误的是(B )A INotifyPropertyChanaged接口用于在数据源发生变化时通知Bind对象B Silverlight中的数据绑定与中的数据绑定没有区别C OneWay和TwoWay绑定模式必须实现INotifyPropertyChanged接口D 可以将数据对象作为XAML中的静态资源进行绑定10 以下对控件的描述,正确的有( B)A Popup控件ToolTip控件都用于为UI元素创建提示信息,并且可以自动隐藏B DataGrid控件中的列可以自动生成或在XAML中进行设计C ComboBox控件中的下拉列表项只能是静态创建的<ComboBoxItem>元素D Image元素的Source属性只能指向Silverlight程序中的图片11 以下关于全局样式的说法,错误的是(D )A 全局样式被定义为全局的静态资源B 全局样式和页面级别样式都通过Setter设置样式属性的值C Key属性值在全局样式中不能重复D 一种类型的控件只能定义一个全局样式12 以下关于控件模板的说法,错误的是(A )A 控件模板需要在App.xaml文件中定义,且必须作为全局静态资源进行定义B 控件模板能够使控件的外观,内容和结构保持一致C 控件模板可以使控件重用性更高 , 有利于代码的维护D 控件只要具有Template属性,就可以定制模板13 以下关于路由事件的描述,不正确的有(C )A Silverlight中的路由事件就是事件冒泡B 路由事件是父控件接收和处理来自子控件的事件C 路由事件是子控件接收和处理来自父控件的事件D 鼠标事件MouseLeftButtonDown允许路由事件14 以下关于Silverlight用户控件的说法,不正确的有(C )A 所有的Silverlight用户界面都是由用户控件呈现B 用户控件只能被追加到其他的用户控件中进行呈现C 用户控件只能在当前应用程序中重用D 用户控件可以单独呈现15 以下关于自定义控件的说法,不正确的有(D )A 自定义控件可以在Silverlight类库创建,在任何Silverlight应用程序中重用B 自定义控件如果派生自Control类,则除非定制了控件模板,否则不会呈现任何UI界面C 自定义控件可以派生自现有的任何内置控件D 自定义控件不允许用户自己通过Content属性添加内容16 以下关于Path对象的描述,正确的有(AB )A Path可以绘制任何的Shape形状B Path对象的Data属性只能使用几何图形呈现内容C Path对象的Data属性中mini-language不区分大小写,例如,H和h绘制的水平线相同D Path对象在Data属性中通过mini-language绘制路径,C表示绘制二次方的贝赛尔曲线 //注释C表示三次方的贝塞尔曲线,Q表示二次方贝塞尔曲线,A:椭圆曲线,Z 结束命令17 以下关于画刷的描述,正确的有(B )A 图片刷ImageBrush必须与图片元素Image结合使用B 视频刷必须与MediaEelement元素结合使用C 线性渐变刷和径向渐变刷的作用完全相同D SolidColorBrush可以使用多种颜色填充元素18 以下关于Geometry图形和Shape形状之间的区别,说法正确的是(A )A Shape可以自我呈现B Geometry可以自我呈现C Geometry可以单独存在D Shape和Geometry绘制的都是3D图形19 以下关于元素变换的说法,错误的是( A)A RotateTransform默认按照逆时针方向进行旋转变换默认顺时针方向B ScaleTransform的ScaleX属性按照指定的比例沿X轴方向缩放变换C 矩阵变换通过修改结构体Matrix的矩阵实现D TransformGroup允许嵌套TransformGroup20 以下关于Image元素的Stretch属性的描述,错误的是( C)A 取值为None时,不拉伸图像B 取值为Uniform时,图像按比例拉伸,不破坏图像比例C 取值为Fill时,图像会填满规定的尺寸区域,不破坏图像比例D 取值为UniformToFill时,图像会被裁剪,但比例不会破坏21 以下关于WCF服务契约的描述,错误的是(D )A 服务契约必须以ServiceContact特性标识B 服务契约一般以接口定于C 服务契约中定义了服务操作,这些操作以OperationContract特性标识D 在一个WCF服务中可以没有服务契约22 以下关于WCF的终结点EndPoint的描述,正确的有( A)A WCF可以有一个或多个终结点B 地址指定了外部能够访问的操作契约指定了外部能够访问的操作 BC说反了C 契约指定了终结点的位置地址制定了终结点的位置D 终结点中的绑定指定了它与外界通信的协议23 创建和调用WCF的步骤,正确的有(B )A 创建服务契约 -> 自我承载服务 -> 创建服务 -> 客户端调用服务B 创建服务契约 -> 创建服务 -> 自我承载服务 -> 客户端调用服务C 创建服务契约 -> 创建服务 -> 客户端调用服务 -> 自我承载服务D 创建服务契约 -> 创建服务 -> 客户端调用服务 -> IIS承载服务24 以下关于Silverlight调用WCF服务的说法,错误的是( BC)A Silverlight总是异步调用WCF服务B Silverlight只能调用同域的WCF服务 // 注释,可以快于,加XMl文件C Silverlight调用的WCF服务必须寄宿在WEB服务器 //注释,还可以自己承载D Silverlight默认不能跨域调用WCF服务25以下关于WCF服务器端配置的说法,错误的是( A)如果WCF服务由IIS承载,则不需要添加配置如果WCF服务是自我承载,可以通过配置或者托管代码监听和对外公开元数据如果文件可以是web.config,也可以是app.config配置文件中的endpoint节点用于配置服务器端终结点,包括地址绑定契约26 Silverlight中使用WebClient 对象与使用HttpWebRequest对象的区别在于( C)A WebClient是抽象类,HttpWebRequest不是抽象类 // WebClient是实体类,HttpWebRestpuset是抽象类B HttpWebRequest通过事件实现异步调用C WebClient通过事件实现异步调用D WebClient回调函数运行在非UI线程上,所以回调函数中不能处理Silverlight控件27 以下关于用户独立存储空间的说法,不正确的是(A)A 操作系统独立存储空间的类位于System.IO命名空间下、、注释:SystemIO.IsolatedStorageFile中B 独立存储空间可以将数据永久存储在用户计算机中C 独立存储空间使用文件流保存文件D 独立存储空间存储在服务器端28 以下对于JSON数据序列化和反序列化的解释,错误的有(C )A Json数据可以使用第三方插件序列化B 反序列化是指将Json封装为实体对象C 序列化是指将Json封装为实体对象、、注释:序列化是将对象转化为Json 格式的字符串。
silverlight 项目案例
"Silverlight 项目案例:深度解析与实践探讨"一、Silverlight 项目案例简介Silverlight 是一个基于 .NET Framework 的应用程序框架,它可以用来开发和部署互联网应用程序。
在本文中,我们将会深入探讨Silverlight 项目案例,以便更好地理解其深度和广度。
二、Silverlight 项目案例的开发过程1. Silverlight 项目案例的背景和需求在进行深入探讨之前,首先来看一下一个典型的 Silverlight 项目案例的背景和需求。
通常,一家企业需要一个在线视频播放器来展示其产品宣传视频,并且希望用户能够在网页上直接观看视频或者下载。
这个需求将会是我们在探讨中不断提及的重要主题。
2. 技术选型与开发架构在开发一个 Silverlight 项目案例时,我们需要考虑的技术选型和开发架构非常重要。
我们可能会选择使用 MVVM 模式来构建 Silverlight应用程序,或者使用 Entity Framework 来管理数据。
3. UI 设计与交互在Silverlight 项目案例中,良好的UI 设计和交互体验是至关重要的。
我们可能会涉及到设计响应式布局、实现动画效果、以及优化用户交互体验的主题。
三、Silverlight 项目案例的实际应用与价值1. 实际应用场景与案例分析通过对实际应用场景的分析,我们可以更直观地理解 Silverlight 项目案例的实际应用价值。
我们可以探讨该在线视频播放器是如何满足企业宣传需求的,以及其在用户体验和功能上的优势。
2. 技术实现与解决方案借助 Silverlight 项目案例,我们可以深入探讨其涉及的技术实现和解决方案。
我们可以分析该在线视频播放器是如何实现视频流的加载和播放的,以及如何处理各种格式的视频文件。
这些内容将会是我们在文章中多次提及的重要主题。
3. 成果展示与用户反馈我们可以共享该 Silverlight 项目案例的成果展示,并对用户反馈进行总结。
silverlight被阻止或者是插件已安装但是还是提示未安装解决办法
第一节操作程序
1、silverlight安装被阻止:、
silverlight过时或silverlight安装后被阻止的处理方法:
在浏览器里打开“工具”→“internet选项”→“安全”→“受信任的站点”→“站点”,取消“对该区域中的所有站点要求服务器验证”勾选项,然后把部门预算系统的地址添加到受信任站点中;
然后再打开浏览器中的“工具”→“兼容性视图设置”,再次添加部门预算系统地址到兼容性视图里。
最后,打开浏览器中的“工具”→“弹出窗口阻止程序”→“弹出窗口阻止程序设置”,一样的把部门预算系统的地址添加进去,完成后刷新浏览器。
页脚内容1。
Silverlight入门基础
Silverlight入门教程--基于运行环境示例郑健2008-3-9(一).概述 (3)(二). 代码示例 (3)1).基础知识示例 (3)1. 对象的定位 (3)2. 使用SilverLight插件 (8)3. SilverLight元素的鼠标事件 (10)4. SilverLight元素的键盘事件 (16)5.方法createFromXaml使用示例 (17)6.访问和修改Silverlight元素以及属性 (19)7. Silverlight中的字体使用 (21)8.全屏支持功能 (24)9. Silverlight Downloader 对象使用 (26)10.定时器功能 (29)11.错误处理支持 (31)12.把xaml段内置在aspx或html页面中 (34)2).制作图形示例 (36)13.基本图形形状示例 (36)14.画刷对象的使用 (38)15.视频刷对象的使用 (41)16.Path元素使用 (43)17.变换效果(Transform) (44)3).多媒体功能 (46)18.在线电影播放 (46)4).制作动画效果示例 (51)19.一个动画示例 (51)20.动画的交互控制 (53)21.动画关键帧示例 (55)(一).概述Silverlight是一个跨浏览器的、跨操作系统平台的插件,为Web带来下一代媒体体验和丰富的交互式应用程序体验. 使用JS实现Ajax技术可以使网站具有很好的用户体验, 但它也会使网站过于庞大和臃肿. 业余时间学习了一下微软的Silverlight官方教程, 在学习时顺便根据学习示例整理了一个教程. 此教程包括一些精简的小例子, 主要针对开发使用场景展开示例, 在实际开发中也可以作为查找手册使用. 运行环境为VS 2005, 这些示例比较简单很容易看懂, 因此示例没有太多注释.(二). 代码示例1).基础知识示例1. 对象的定位通过呈现几个Silverlight元素来示例对象之间的定位, 以及在一个页面中创建装载多个Silverlight对象.2. 使用SilverLight插件3. SilverLight元素的鼠标事件I.鼠标滑入和滑出事件II.鼠标点击(按下/弹起)和移动事件4. SilverLight元素的键盘事件5.方法createFromXaml使用示例6.访问和修改Silverlight元素以及属性7. Silverlight中的字体使用8.全屏支持功能9. Silverlight Downloader 对象使用10.定时器功能11.错误处理支持12.把xaml段内置在aspx或html页面中这样的话就不用单独的 *.xaml 文件来承载SilverLight对象控件元素内容.2).制作图形示例13.基本图形形状示例14.画刷对象的使用15.视频刷对象的使用16.Path元素使用17.变换效果(Transform)3).多媒体功能18.在线电影播放。
谈谈Silverlight 2中的视觉状态管理 Part2 电脑资料
谈谈Silverlight 2中的视觉状态管理 Part2 电脑资料概述在WPF和Silverlight中的控件模板支持自定义控件的观感,外观,指控件的视觉效果;而感觉那么是控件交互的响应性,如在控件上按下鼠标、控件获得焦点等状态的改变,本文为该系列第二篇,介绍如何利用Silverlight 2中的视觉状态管理来定制控件观感。
在前一篇我们介绍了视觉状态管理中的一些根本概念,下面将通过一个实例来展示如果利用视觉状态管理来定制控件的观感,最终我们完成的例如效果如下列图所示:本文中的例如使用了这篇文章中的代码。
定义控件模板我们现在先来定义CheckBox控件的模板,即上篇文章中所介绍的部件,如下代码所示:为了减少代码,这里去掉了一些属性,只是给出了必备的一些部件名称。
现在我们运行后,可以看到虽然CheckBox的样式有了,但它并没有任何交互的效果,如点击鼠标后CheckBox并没有选中。
定义视觉状态组我们知道,视觉状态管理器(VisualStateManager)负责管理控件的状态和状态组以及状态的迁移,所以我们所有的视觉状态组、视觉状态迁移、视觉状态等都通过它来管理,在XAML定义时,它们之间的架构关系如下:在引用VisualStateManager之前,需要先引入命名空间,这是Silverlight 2 Beta 2的一个Bug。
如下代码所示:xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows"接下来我们定义视觉状态组,在上篇文章中我们就介绍过CheckBox的状态组,总共有三个: FocusStates、CommonStates、CheckStates,这里我们只定义CommonStates和CheckStates状态组,大家可以自行定义FocusStates状态组,如下代码所示:这里需要为每个视觉状态组指定名称,且名称是固定的。
Silverlight之OOB模式下的一些事
Silverlight之OOB模式下的⼀些事本⽂简介:1.为什么要使⽤OOB?使⽤OOB的作⽤?2.如何实现OOB模式3.对OOB进⾏⼀些设置;4.检测OOB的安装状态;5.更新应⽤程序;6.WebBrowser控件;7.桌⾯通知窗⼝;8.记录窗体的状态;9.提升信任;10.⼦窗体(⾮ChildWindow,同时可响应的多个窗体);组件访问;12.在浏览器中提升信任。
1.理解Oob实现OOB之后将有如下的作⽤:(1)获得⼀个桌⾯的快捷⽅式;(2)可以实现离线访问(当然要结合本地存储);(3)获得更⾼的信任权限。
2.实现⼀个最简单的OOB应⽤程序(1)右键Silverlight应⽤程序选择Silverlight选项卡;(2)选中"Enable running application out of the browser"复选框;(3)点击"Out-of-Browser Settings"(OOB设置)按钮,如下:可以在Title中输⼊⾃⼰想要的标题即可。
这样⼀个最简单的OOB程序就创建好了,赶紧运⾏看看吧。
3.⾃定义应⽤程序的图标在上图中的Icon填写处可以选择⼀个⾃定义的图⽚来作为安装后的快捷⽅式的图标。
4.检测OOB的安装状态⼀般我们通过Application.Current.IsRunningOutOfBrowser来判断当前的程序是否是以OOB模式运⾏的,当然也可以判断当前OOB安装的状态; Application.Current.InstallState表⽰当前OOB安装的状态,⼀共四个值:Not Installed(未安装),Installing(安装中),InstallFailed(安装失败),Installed(已安装)。
在APP中添加如下代码,以检测安装状态的变化:this.InstallStateChanged += App_InstallStateChanged;事件代码如下:InstallPage page = this.RootVisual as InstallPage;if (page != null){// Tell the root visual to show a message by calling a method// in InstallPage that updates the display.switch (this.InstallState){case InstallState.InstallFailed:page.DisplayFailed();break;case InstallState.Installed:page.DisplayInstalled();break;}}InstallPage为⾃定义安装界⾯,可⾃⾏实现:InstallPage.Xaml:<Border Margin="10" Padding="10" Background="LightSteelBlue"BorderBrush="SteelBlue" BorderThickness="1" CornerRadius="3"HorizontalAlignment="Left" VerticalAlignment="Top" MaxWidth="400"><Grid x:Name="LayoutRoot"><Grid.RowDefinitions><RowDefinition Height="Auto"></RowDefinition><RowDefinition Height="Auto"></RowDefinition></Grid.RowDefinitions><TextBlock Margin="5" x:Name="lblMessage" TextWrapping="Wrap">You need to install this application to run it.</TextBlock><Button x:Name="cmdInstall" Grid.Row="1" Content="Install" HorizontalAlignment="Center" Padding="10" Margin="15" Click="cmdInstall_Click"></Button> </Grid></Border>InstallPage.Xaml.cs:public InstallPage(){InitializeComponent();if (Application.Current.InstallState == InstallState.Installed){lblMessage.Text = "This application is already installed. " +"You cannot use the browser to run it. " +"Instead, use the shortcut on your computer.";cmdInstall.IsEnabled = false;}}private void cmdInstall_Click(object sender, RoutedEventArgs e){// Make sure that the application is not already installed.if (Application.Current.InstallState != InstallState.Installed){// Attempt to install it.bool installAccepted = Application.Current.Install();if (!installAccepted){lblMessage.Text ="You declined the install. Click Install to try again.";}else{cmdInstall.IsEnabled = false;lblMessage.Text = "The application is installing... ";}}}public void DisplayInstalled(){lblMessage.Text ="The application installed and launched. You can close this page.";}public void DisplayFailed(){lblMessage.Text = "The application failed to install.";cmdInstall.IsEnabled = true;}5.更新OOB应⽤程序更新OOB应⽤程序private void Application_Startup(object sender, StartupEventArgs e){if (Application.Current.IsRunningOutOfBrowser){// Check for updates.Application.Current.CheckAndDownloadUpdateCompleted +=Application_CheckAndDownloadUpdateCompleted;Application.Current.CheckAndDownloadUpdateAsync();this.RootVisual = new MainPage();}else{this.RootVisual = new InstallPage();}}上述代码中添加了CheckAndDownloadUpdateCompleted 回调函数,即检查和下载应⽤程序之后执⾏。
关于无法安装silverlight的解决办法
关于无法安装silverlight的解决办法关于无法安装silverlight的解决办法本来想玩个游戏,可是需要安装silverlight试了下,电脑死活安不上,网上的方法试了一个又还是不行终于想到一个比较靠谱的方法工具/原料电脑silverlight.exe方法/步骤1将下载后的silverlight.exe后缀名改成rar,解压后得到silverlight.msp文件,这是silverlight的安装文件,运行它2等待一会弹出一个出错的框框举个例子could not open key : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_RESTRICT_OBJECT_DA TA_ATTRIBUTE这表示无法写入注册表,权限不够开始>运行>输入regedit打开注册表把提示框里的注册表路径找到3修改权限:右键权限 > 高级 > 所有者 > 改为Administrators,点应用 > 点权限 > 添加 > 输入LOCAL,选完全控制>确定4继续运行silverlight.msp,重复上述步奏。
一般要重复4,5次。
知道框框的提示变成Failed to Create playReady Folder!说明可以了,不用运行silverlight.msp,运行原先下载的silverlight.exe文件关于无法安装silverlight的解决办法本来想玩个游戏,可是需要安装silverlight试了下,电脑死活安不上,网上的方法试了一个又还是不行终于想到一个比较靠谱的方法工具/原料电脑silverlight.exe方法/步骤1将下载后的silverlight.exe后缀名改成rar,解压后得到silverlight.msp文件,这是silverlight的安装文件,运行它2等待一会弹出一个出错的框框举个例子could not open key : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_RESTRICT_OBJECT_DA TA_ATTRIBUTE这表示无法写入注册表,权限不够开始>运行>输入regedit打开注册表把提示框里的注册表路径找到3修改权限:右键权限 > 高级 > 所有者 > 改为Administrators,点应用 > 点权限 > 添加 > 输入LOCAL,选完全控制>确定4继续运行silverlight.msp,重复上述步奏。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.调试WCF相关问题的一般步骤是什么?2.如何使得Silverlight和HTML元素之间进行交互?2.1. 如何从JavaScript调用中可脚本化的方法?2.2. 如何从代码后置调用客户端JavaScript函数?2.3. 如何从代码后置访问HTML元素?3.如何在Visual Studio中调试带有Silverlight 功能的网站中的JavaScript代码?4.如何处理 Out-Of-Browser 相关问题?4.1. 如何检测应用程序是否工作在OOB( Out-Of-Browser)模式?4.2. 如何检测OOB更新?4.3. 如何将HTML元素融入Silverlight应用程序?4.4. OOB模式下如何调用JavaScript访问HTML 元素?4.5. 在Silverlight中如何访问cookie?5.如何调试OOB应用程序?6.在OOB模式下如何得到网络状况?7. 如何将XAML转换为图像?8. 如何使用Perspective 3D?9. 何时并如何使用Isolate Storage?10. 如何使同一页面的2个Silverlight应用程序交互?11. 如何指定安装界面?12. 什么是Element Binding?13. 什么是Binary Xml?14. Silverlight应用程序如何相互交互?15. Silverlight中如何访问本地字体?16. 什么是 Silverlight 导航应用程序(Navigation Application)?========================================== =====================1.调试WCF相关问题的一般步骤是什么?默认情况下,Silverlight使用浏览器HTTP栈。
这种情况下,如果WCF发生了一个错误,它会发送HTTP 404响应码,错误详细信息并不能在Silverlight客户端中被访问到。
为了得到异常的详细信息,我们可以使用客户端HTTP栈。
为此,请尝试以下步骤:1. 当应用程序开始时加入如下代码(请注意,这只是出于调试目的)WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);WebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp);2. 单击“Debug”->”Exceptions”。
选择“Common Language Runtime Exceptions”.3. 单击“Tools”->”Options”->”Debugging”。
不勾选“Enable Just My Code(Managed Only)” 来获得更多异常信息注意:在执行此步骤之后,在调试中被应用程序正确处理的异常也会一个断点。
有时你只想对特定的异常触发断点,例如.WebException。
为此,请将“Debug”->”Exceptions”中的树选项展开,并选择你想要触发断点的异常。
4.在服务器端,将includeExceptionDetailInFaults 属性设置为“True”.这指定了返回至客户端的SOAP 错误(fault)的详细信息中是否要包括托管异常的信息。
请参考如下web.config的设置部分。
<system.serviceModel><behaviors><serviceBehaviors><behaviorname="SimpleWCFBehavior"><serviceMetadata httpGetEnabled="true"/><serviceDebug includeExceptionDetailInFaults="True" /></behavior></serviceBehaviors></behaviors><services><service behaviorConfiguration="SimpleWCFBehavior" name="SimpleWCF"><endpointaddress=""binding="basicHttpBinding"contract="ISimpleWCF"><identity><dnsvalue="localhost"/></identity></endpoint><endpointaddress="mex"binding="mexHttpBinding"contract="IMetadataExchange"/></service></services></system.serviceModel>你可以参考如下文档来获得更多详细信息:/en-us/librar y/dd470100(VS.95).aspx/en-us/librar y/system.servicemodel.description.serviced ebugbehavior.includeexceptiondetailinfault s.aspx/en-us/librar y/dd920295(VS.95).aspx/en-us/librar y/dd470096(VS.95).aspx-------------------------------------- 2.如何使得Silverlight和HTML元素之间进行交互? 2.1. 如何从JavaScript调用中可脚本化的方法?1.为目标方法增加ScriptableMember[ScriptableType]publicclassJavasSriptClass{[ScriptableMember]publicstringCallScriptableMethod(string parametername){return"The Parameter Name is "+ parametername;}}2.将托管对象注册为可被JavaScript代码以脚本化方法访问HtmlPage.RegisterScriptableObject("basic", newJavaScriptClass());3.在HTML页面如下调用该方法:functioncallScriptableFun(parameter){varcontrol =document.getElementById("SilverlightControl" );varres =control.content.basic.CallScriptableMethod(p arameter);}注意:SilverlightControl 是你的Silverlight控件的 ID。
参考网址:/en-us/librar y/system.windows.browser.htmlpage.register scriptableobject(VS.95).aspx2.2. 如何从代码后置调用客户端JavaScript函数?usingSystem.Windows.Browser;HtmlPage.Window.CreateInstance("Your Function Name",newstring[] {"parameter1","parameter2" });2.3. 如何从代码后置访问HTML元素?usingSystem.Windows.Browser;HtmlDocumentdoc =HtmlPage.Document;doc.GetElementById("target control’s ID").SetProperty("innerHTML","<b>hello world</b>");3.如何在Visual Studio中调试带有Silverlight 功能的网站中的JavaScript代码?要做到这一点,请右击你的Web项目,选择“Properties”。
在属性窗口,导航至Web 标签,不勾选“Silverlight”. 见下图.---------------------------------------------------------4.如何处理 Out-Of-Browser 相关问题?4.1. 如何检测应用程序是否工作在OOB( Out-Of-Browser)模式?在一些可能的场景下,你会依据应用程序的工作模式添加不同的行为。
为此,有2种方法供你选择。
方法1:Application.Current.IsRunningOutOfBrowser方法2:HtmlPage.IsEnabled4.2. 如何检测OOB更新?我们可以在程序开始时调用CheckAndDownloadUpdateAsync()方法,并处理UpdateCompleted 事件。
privatevoidApplication_Startup(objectsender,StartupEventArgse){this.CheckAndDownloadUpdateAsync();this.RootVisual =newMainPage();}publicApp(){this.Startup +=this.Application_Startup;this.Exit +=this.Application_Exit;this.UnhandledException +=this.Application_UnhandledException;this.CheckAndDownloadUpdateCompleted += newCheckAndDownloadUpdateCompletedEventHandl er(App_CheckAndDownloadUpdateCompleted);InitializeComponent();}voidApp_CheckAndDownloadUpdateCompleted(objectsender, CheckAndDownloadUpdateCompletedEventArgse){if(e.UpdateAvailable) {MessageBox.Show("There are new updates downloaded. Please restart!");}}注意: 更新无法自动刷新,除非我们重启应用程序。