为Silverlight创建自定义控件

合集下载

Blend创建或修改模板

Blend创建或修改模板

创建或修改模板控件的外观由美工板上应用于控件的模板定义。

模板包括控件内所包含的对象。

例如,“TextBox”的控件模板包含一个名为“Bd”的Border 对象,而后者又包含一个名为“PART_ContentHost”的“ScrollViewer”对象。

在对美工板上的“TextBox”应用该控件模板时,“ScrollViewer”对象将显示“TextBox”的内容。

编辑TextBox 控件的模板系统控件的默认模板使用动态主题,可根据应用程序是运行在Windows XP 计算机上还是运行在Windows Vista 计算机上,来改变控件的外观。

但是,如果修改系统控件的模板,则您的控件在Windows XP 和Windows Vista 上的外观将变得一样。

有关详细信息,请参阅设置支持模板的控件的样式中的“主题”一节。

控件模板以资源的形式保存,可应用于同一类型的其他控件。

创建控件模板1.在“对象和时间线”面板中或在美工板上,选择要从中创建控件模板的对象,然后执行下列操作之一:∙在“对象”菜单中,指向“编辑模板”。

∙右键单击对象,然后指向“编辑模板”。

∙在美工板顶部的痕迹导航栏中,单击对象的名称。

2.在出现的下拉菜单中,执行下列操作之一:∙若要创建一个新的空模板,请单击“创建空模板”。

∙若要基于当前正由选定对象使用的模板(无论该模板是对象的默认模板,还是先前创建的自定义模板)创建新模板,请单击“编辑副本”。

说明:3.此时,将显示“创建样式”对话框。

这是因为控件模板存储在样式资源中。

4.在“名称(关键字)”下,执行下列操作之一:∙若要为该对象创建新的命名样式,请键入关键字名称。

其他对象可通过此名称引用该样式,从而应用该模板。

∙若要创建将由此类型的所有对象使用的样式,请选择“全部应用”。

提示:5.在“定义位置”下,选择选项以确定要定义样式的位置:∙若要使应用程序中的任何文档都能使用该样式,请选择“应用程序”。

基于Silverlight4.0的用户管理系统设计与实现

基于Silverlight4.0的用户管理系统设计与实现

基于Silverlight4.0的用户管理系统设计与实现摘要:以Visual Studio 2010和SQL Server 2005为平台搭建Silverlight 4.0三层架构解决方案,采用WCF RIA Services的方式操作后台数据库,以构建用户管理系统说明Silverlight 4.0平台下数据的操作使用方法。

关键词:银光;C#;WCF RIA Services;实体数据模型1 概述1.1 Silverlight概述Silverlight(中文名译为银光或银光技术)是微软公司开发的跨浏览器、跨平台的富互联网应用(RIA,Rich Internet Application)策略的设计、开发、发布平台。

Silverlight是一种全新的Web呈现技术,可以为用户提供内容丰富、界面炫美的交互体验,具有高效开发、高艺术性的特点。

至今微软已正式发布了Silverlight4.0,作为下一代Web技术的原型,这一技术正在得到不断的提升,越来越多的用户开始关注它的进一步发展,并已在实践中得到应用。

1.2 Silverlight项目的架构Silverlight项目可以搭建三层架构甚至多层架构,但这与通常的三层架构有不同之处。

Silverlight 4.0引入了WCF RIA Services,可以快速搭建多层架构,如同传统的B/S项目一般。

Silverlight项目在建立时就已经为用户搭建了清晰的三层架构轮廓,由于是以浏览器为依托的客户/服务器项目,因此客户端项目定义为表现层,表现层基于Silverlight技术;服务器端项目定义为中间层,中间层基于.Net技术;底层为数据层,数据层即物理数据库。

架构图如图1。

1.3 Silverlight项目的面向对象及数据库操作原理C#是面向对象的编程语言,但在Silverlight项目中,面向对象又有了新的诠释。

类可以是抽象、继承来的,也可以是用户控件、子窗体,为什么不可以是数据表呢?数据表完全合乎作为类的条件,因此作为项目的核心来考虑也不为过。

Silverlight入门系列]使用MVVM模式(6):使用Behavior

Silverlight入门系列]使用MVVM模式(6):使用Behavior

Behavior把一些常用的行为封装成可重复使用的组件(Component),在理想状况下,Designer(设计师)或domain expert(特定领域的专家,例如财会人员、HR人员、或MIS)甚至可以完全不需要具备程序设计的观念,只需要了解基础的事件(Event)观念,就可以顺利的开发出一套系统,若需要实现特定的功能时,可商请developere为他们开发所需要的Behavior,designer只需要取得这些Behavior并使用即可。

例如,界面设计人员可以使用Expression Blend把一个Behavior拖到一个界面元素上,比如右键点击以后启动一段动画这个行为,这个界面元素就会自动执行,岂不是很清爽!(当然,执行函数还是要编程人员编写),来个例子:界面xaml:1<UserControl2xmlns="/winfx/2006/xaml/presentation"3xmlns:x="/winfx/2006/xaml"4xmlns:d="/expression/blend/2008"5 xmlns:mc="/markup-compatibility/2006"6xmlns:wm="clr-namespace:AsycValidation"7 xmlns:i="/expression/2010/interactivity" xm lns:ei="/expression/2010/interactions" x:Class="A sycValidation.MainPage"8mc:Ignorable="d"9 x:Name="MyUserControl"10 d:DesignHeight="300" d:DesignWidth="400">1112<Grid x:Name="Layout">13<TextBlock Height="32"HorizontalAlignment="Left" Margin="41,53,0,0" x:Name=" textBlock1" Text="Company:"VerticalAlignment="Top" Width="66"/>14<TextBox Height="31"HorizontalAlignment="Left" Margin="120,45,0,0" x:Name="t extBox1" Text="{Binding CompanyName, Mode=TwoWay, NotifyOnValidationError=Tru e}"VerticalAlignment="Top" Width="119"/>15<TextBox Height="30"HorizontalAlignment="Left" Margin="120,104,0,0" x:Name=" textBox2" Text="{Binding CompanyID, Mode=TwoWay, NotifyOnValidationError=True} "VerticalAlignment="Top" Width="119"/>16<Button Content="Button" Height="36"HorizontalAlignment="Left" Margin="120,156,0,0" x:Name="button1"VerticalAlignment="Top" Width="81">17<i:Interaction.Triggers>18<i:EventTrigger EventName="Click">19<ei:CallMethodAction MethodName="button1_Click"TargetObject="{Binding Elemen tName=MyUserControl}"/>20</i:EventTrigger>21<i:EventTrigger>22<ei:CallMethodAction MethodName="button1_loaded"TargetObject="{Binding Eleme ntName=MyUserControl}"/>23</i:EventTrigger>24</i:Interaction.Triggers>25</Button>26</Grid>27</UserControl>界面xaml.cs:1using System;2using System.Collections.Generic;3using System.Linq;4using ;5using System.Windows;6using System.Windows.Controls;7using System.Windows.Documents;8using System.Windows.Input;9using System.Windows.Media;10using System.Windows.Media.Animation;11using System.Windows.Shapes;1213namespace AsycValidation14{15publicpartialclass MainPage : UserControl16 {17public MainPage()18 {19InitializeComponent();2021CompanyModel m1 = new CompanyModel() { CompanyID = 1, CompanyName = "abc" }; 2223companyViewModel = new CompanyViewModel(m1);24this.DataContext = companyViewModel;2526 }2728publicvoid button1_Click()29 {30MessageBox.Show("ok");31 }3233publicvoid button1_loaded()34 {35MessageBox.Show("loaded");3637 }3839public CompanyViewModelcompanyViewModel { get; set; }4041 }42}注意给这个button定义了两个CallMethodAction的behavior:一个是点击事件,一个是加载Loaded事件。

LabVIEW中创建自定义控件和自定义类型

LabVIEW中创建自定义控件和自定义类型

图1.错误的表现形式
这是我今天做的一个“严格自定义类型”的实例。

请注意,在工具栏左侧,有一个被红色圆圈和反斜杠修饰的OK。

这意味着:错误。

请看LabVIEW对这个错误的解释,点击“帮助”弹出下图。

图2.点击OK后显示的错误原因
再来看一下LabVIEW的帮助对于这个错误的说明。

图3.来自帮助系统的说明
帮助文件还说到,控件编辑器(图1所示窗口)一次只能包含一个输入控件或显示控件。

数组或者簇本身就是一个控件,也可以说是一个容器(控件容器),所以能够包含多个控件,但对外还表现为一个控件。

下面再给出一个自己做的正确的例子。

图4.正确的“严格自定义类型”例子
错误提示的“OK”按钮不见了,取而代之的是一个扳手样子的按钮,我们可以进一步定义外观。

最后附上从LabVIEW帮助文件中打印出来的相关内容,权威、清晰。

创建自定义输入控件.pdf。

ArcGIS开发模式silverlight

ArcGIS开发模式silverlight

搭建开发环境
1、安装VS2008 SP1 或者Visual Web Developer Express SP1 2、安装Microsoft® Silverlight™ Tools for Visual Studio 2008 SP1 选择安装Silverlight ToolKit (/Silverlight); 3、下载API library;
/arcgisserver/apis/silverlight/
4、在Web Server根目录下添加跨域访问协议; 对于ArcGIS Server .net 添加到C:\Inetpub\wwwroot; 对于ArcGIS Server Java添加到<ArcGIS>\java\web_output;
主要内容:高级进阶
• Silverlight 基础
– Microsoft Silverlight 概述 – 理解XAML – 资源字典 – 自定义控件外观 – 数据绑定 – Silverlight网络和通信
• Silverlight API开发进阶
– 客户化控件外观 – 绘制专题图 – 自定义图层
Silverlight官方网站 / Silverlight开源站点 /Silverlight MSDN Silverlight 帮助 /zh-cn/library/cc838158(VS.95).aspx
openSUSE 11.0

通过Moonlight 插件,Linux 用户可以浏览Silverlight内容和 使用Silverlight应用
2009年7月 Siverlight 3.0正式发布
• 支持高清媒体
/media/experiencesmoothstreaming

Silverlight与数据库交互示例

Silverlight与数据库交互示例

SilverLight目前已经成为互联网应用当中的终点,其本身具有的巨大市场前景,尤其是提供丰富的网路表示控件方面已经成为了flash的最大竞争对手,几天我们通过一个简单的示例演示如何使用SilverLight创建一个使用数据访问的应用,同时为了配合微软最新的.NET 3.5技术,这个例子还将使用微软的LINQ数据源作为数据集合的基础,使用WCF进行远程的数据访问,从而实现分布式调用。

整个过程共分为5个部分1.创建一个SilverLight应用2.创建一个使用LINQ的数据源映射对象3.创建一个WCF应用4.在SilverLight中添加对WCF的引用5.在SilverLight添加DataGrid数据显示控件1 创建一个SilverLight应用本程序使用Visual Studio 2008中创建新的SilverLight应用。

在Visual Studio 2008中只要安装了SilverLight 2.0 Beta 1的Visual Studio 2008模板即可看到如下图1.1所示的新工程模板,图1.1 新建SilverLight 2.0工程在新建Sl工程的时候有一个选项,就是是否添加的网站作为宿主如下图1.2所示图1.2 选择是否添加网站应用在这里我们为了后面编辑数据库应用服务器,选择添加 2.0的网站,添加之后的工程窗体项目文件如下图1.3所示1.3 添加工程以后的应用界面可以看到Sl被编译成为了一个SilverLightDemo.xap文件,这个文件到底是什么内容呢,我们在这里对它的内容进行解密,首先修改文件后缀为zip之后解压缩,就可以看到文件是把SL运行需要调用的程序打包之后随应用程序提供。

图1.4显示了这几个文件图1.4 SilverLightDemo.xap所包含的文件这些文件除了基本的SL库文件之外还有一个应用程序描述文件,AppMainfest.xaml,这个文件记录了当前应用程序所使用的基本业务逻辑和表示层内容。

LightSwitch_开发入门

LightSwitch_开发入门

LightSwitch开发入门什么是LightSwitch简单的说LightSwitch就是一个基于模板的自动化开发Silverlight应用程序的工具,不同于一般的基于数据字典,配置生成的应用程序的工具,因为LightSwtich提供的所有模板都是可以扩展的,自定义开发的,包括页面布局,数据源,使用的控件。

非常方便植入.net 的代码。

LightSwitch是一个被裁剪后的VS产品,用来更容易地进行业务处理(Line of Business,LoB)应用程序的开发。

有点类似Access。

LightSwitch提供最简单的方法创建面向云和桌面的商业应用程序。

LightSwitch提供了多种预先创建的模板和工具来创建面向Windows客户端和Windows Azure的商业应用程序,并且使你所需要编写的代码尽可能的少。

随着LightSwitch的诞生,我们现在终于有了一种工具能够更好的使业务领域专家轻松的创建具有专业质量级别的商业应用程序(LOB),而不需要将很多精力放在代码编写上。

这是非常关键的,因为这些商业应用程序,有些也许是为了短期需求而创建的,经常需要扩展和IT支持。

LightSwitch的功能●LightSwitch生成的是Silverlight应用程序●它具有好几个内置的模板●编程语言支持C#和●支持SQL Server、SQL Azure、SharePoint和Office●应用程序可以运行在浏览器中、脱离浏览器模式(OfB)下或云中●LightSwitch完成很多基础性的工作,包括了大量的拖拽特性,不过也允许开发人员在需要的时候访问.NET Framework在实践中去体验这些功能最近真好有个客户说需要给他做一个考勤管理的小工具。

导入电子考勤机采集的打卡记录,打印出一张报表,显示哪些人考勤异常,迟到/早退/加班,未打卡记录,做一下简单的统计。

下面就开始LightSwitch开发。

开发环境需求Visual 2010 sp1LightSwitch 2011Silverlight 4 SDK(Silverlight 4 tools)LightSwitch应用程序布局下面是一个默认的LightSwitch应用程序的组界面,当然这个主界面也是可以自定义扩展的以下是关于如何扩展的一些文章/Blog/tabid/61/EntryId/28/Running-a-LightSwitch-Applica tion-With-A-Blank-Shell.aspxVisual 2010开发视图ApplicationData下面就是数据实体(Entity),当然数据源可以是SQL数据库,也可以WebService/WCF/RIA,和Sharepoint一个文档库或列表。

一步一步学Silverlight 2系列(28):图片处理

一步一步学Silverlight 2系列(28):图片处理

一步一步学Silverlight 2系列(28):图片处理一步一步学Silverlight 2系列(28):图片处理概述Silverlight2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON、WebService、WCF以及Sockets的支持等一系列新的特性。

《一步一步学Silverlight 2系列》文章将从Silverlight2基础知识、数据与通信、自定义控件、动画、图形图像等几个方面带您快速进入Silverlight 2开发。

本文将介绍在Silverlight 2中进行图片的处理,包括图片的拉伸、裁剪、半透明遮罩等内容。

创建图片创建图片,我们可以直接使用Image控件或者在上一篇讲过的ImageBrush,使用ImageBrush可以填充图形或者控件的前景色、背景色等,只需要指定ImageSource属性。

注意,在Silverlight 2 Beta 1中,目前似乎只支持.png格式的图片。

&lt;Canvas Background="#CDFCAE"&gt;&lt;Rectangle Canvas.Left="20" Canvas.Top="80"Width="240" Height="136" RadiusX="15" RadiusY="15"&gt;&lt;Rectangle.Fill&gt;&lt;ImageBrushImageSource="a1.png"&gt;&lt;/ImageBrush&gt;&lt;/Rectangle.Fill&gt;&lt;/Rectangle&gt;&lt;Image Source="b1.png" Canvas.Left="320" Canvas.Top="80"&gt;&lt;/Image&gt;&lt;/Canvas&gt;运行后如下所示:图片拉伸当我们创建了一个图片的时候,如果不指定它的宽度和高度,它将会使用默认的规格来显示;如果指定了高和宽,图片将显示在指定高和宽的矩形区域内。

avalonia controltemplate pointerover

avalonia controltemplate pointerover

在Avalonia中,要实现控件的PointerOver效果,可以通过修改ControlTemplate来实现。

以下是一个简单的示例:1. 首先,创建一个自定义控件,例如`MyButton`,并为其定义一个默认样式:```xml<Style x:Key="MyButtonStyle" TargetType="{x:Type controls:MyButton}"><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="{x:Type controls:MyButton}"><Border Background="{TemplateBinding Background}"BorderBrush="{TemplateBinding BorderBrush}"BorderThickness="{TemplateBinding BorderThickness}"><ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"VerticalAlignment="{TemplateBinding VerticalContentAlignment}"Content="{TemplateBinding Content}" /></Border></ControlTemplate></Setter.Value></Setter></Style>```2. 然后,在`MyButton`的样式中添加一个Trigger,用于在指针悬停时修改控件的背景色和边框颜色:```xml<Style x:Key="MyButtonStyle" TargetType="{x:Type controls:MyButton}"><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="{x:Type controls:MyButton}"><Border x:Name="border" Background="{TemplateBinding Background}"BorderBrush="{TemplateBinding BorderBrush}"BorderThickness="{TemplateBinding BorderThickness}"><ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"VerticalAlignment="{TemplateBinding VerticalContentAlignment}"Content="{TemplateBinding Content}" /></Border><ControlTemplate.Triggers><Trigger Property="IsMouseOver" Value="True"><Setter TargetName="border" Property="Background" Value="LightBlue" /><Setter TargetName="border" Property="BorderBrush" Value="DarkBlue" /></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter></Style>```现在,当你将鼠标悬停在`MyButton`上时,其背景色和边框颜色将会发生变化。

microsoftsilverlight

microsoftsilverlight

microsoftsilverlight折叠编辑本段不同版本折叠 S1Silverlight 1.0 由许多核心展示层架构组成,这关系到使用者界面(UI),使用者输入(user input),基本使用者界面控制元件(basic UI controls),图形(graphics)和动画(animation)、媒体播放(media playback),数位权管理(DRM)的支援,以及DOM的整合。

其组Silverlight相关技术图片件如下:(1)输入(Input)- handling input from devices like keyboard,mouse,stylus etc.(2)使用者界面核心(UIcore)- managingrendering of bitmap images(including compressed raster images like JPEG),vector graphics,text and animations.(3)媒体(Media)- playback of MP3,Windows Media and VC-1 streams.(4)XAML - to allow the UI layout to be created using XAML markup language.折叠 S22008年10月13日,微软推出了Silverlight 2.0的RTW版,并提供了相应程式及档案的下载安装。

Silverlight 2.0支援下列新功能特色,弥补了Silverlight 1.0所欠缺的功能:(1)具备一个.NET Framework缩小版的基础类别函式库。

(2)大量内建的Silverlight控制项:在Silverlight 1.0时,所有UI物件都必须透过XAML来自行描述绘制,并缺乏许多内建的Silverlight向量控制项,针对这点,Silverlight 2.0强化控制项方面的能力,内建许多向量控制项供开发人员直接使用。

在LabVIEW中自定义控件

在LabVIEW中自定义控件
自定义控件
目录
自定义控件 ............................................................................................................................................. 1 一 自定义按钮 ................................................................................................................................... 2 方法一 ............................................................................................................................................. 2 方法二 ............................................................................................................................................. 5 方法三 ............................................................................................................................................. 8 二 自定义其他控件 ......................................................................................................................... 13

Blend经典入门教程

Blend经典入门教程

1 开篇随着计算机软件开发分工细节化,微软对已有的产品线进行了调整,在保持原有经典开发工具Visual Studio 基础上,又推出了一套新的设计开发工具系列,Expression Studio。

Expression Studio设计工具系列包含四项主要产品:•Expression BlendExpression Blend(下称Blend),是一款用于设计桌面和Web应用用户界面的可视化工具。

用户可以通过拖拉控件方式创建用户交互界面;另外Blend中,包含一款软件原型建模工具SketchFlow,该工具允许用户快速开发出专业的项目原型,创建设计原型后,以丰富的界面效果展示给客户,该工具将在后文详细讲述。

•Expression DesignExpression Design(下称Design),是一款专业的图形图像设计编辑工具,主要是为项目美工设计人员准备,如果你对Photoshop,Fireworks或者Illustrator熟悉,可以把Design看做同类产品,其中使用原理大部分都是相同的,而Design的优势是可以和Blend完美无缝结合,创建图形后,可以直接转换成为XAML,供Blend调用,由于本系列教程是讲述 Blend,这里就不再对Design过多描述,在后文用到时,我们将详细讲述。

•Expression EncoderExpression Encoder(下称Encoder)是一款专业的视频编辑工具,开发人员可以使用该工具编辑视频项目,并发布到Web服务器,Silverlight项目可以在应用中进行高质量播放调用。

由于本系列教程是讲述 Blend,这里就不再对Encoder过多描述,在后文用到时,我们将详细讲述。

•Expression WebExpression Web(下称Web),是一款专业的Web页面设计工具。

如果您对Dreamweaver 熟悉,可以把Web看做同类产品。

silverlight打印解决方案

silverlight打印解决方案

Silverlight打印解决方案引言Silverlight是一种基于浏览器的应用程序开发框架,它可以创建富客户端应用程序。

然而,Silverlight在打印方面存在一些挑战。

本文将介绍如何解决在Silverlight应用程序中实现打印功能的问题,并提供一种可行的打印解决方案。

问题描述在典型的Silverlight应用程序中,用户可能需要将所见内容打印出来。

然而,由于浏览器的安全限制和Silverlight对打印的支持有限,实现打印功能可能会遇到以下问题: 1. Silverlight应用程序无法直接访问打印机硬件。

2. Silverlight的默认打印功能受到浏览器的安全策略限制。

3. 打印内容可能超出页面大小,需要进行分页处理。

4. 打印预览和设置打印参数的界面需要自定义。

解决方案为了解决上述问题,我们可以采用以下步骤来实现Silverlight应用程序的打印功能:第一步:创建打印内容首先,我们需要将要打印的内容呈现为Silverlight控件,例如Canvas或Grid。

在这些控件中,我们可以添加文本、图像和其他UI元素。

需要注意的是,打印内容的尺寸应当考虑页面大小,并将内容进行分页处理。

第二步:生成打印预览为了提供打印预览的功能,我们可以使用PrintDocument类来生成一个包含打印内容的可视化对象。

使用PrintDocument类,我们可以将Silverlight控件转换为XAML,并将其呈现在打印预览界面中。

这样用户就可以在预览界面中查看打印效果,并设置打印参数。

using System.Printing;using System.Windows.Controls;using System.Windows.Documents;// 创建PrintDocument对象PrintDocument printDocument = new PrintDocument();// 将Silverlight控件转换为XAMLstring xamlContent = XamlWriter.Save(silverlightControl);// 在打印预览界面中呈现XAML内容FixedPage fixedPage = (FixedPage)XamlReader.Load(xamlContent); printDocument.SetPage(fixedPage);第三步:处理分页和打印在打印预览界面中,我们可以为用户提供设置打印参数的选项,例如打印机选择、纸张大小、副本数量等。

Expression Blend实例中文教程

Expression Blend实例中文教程

Expression Blend实例中文教程(1) -开篇随着计算机软件开发分工细节化,微软对已有的产品线进行了调整,在保持原有经典开发工具Visual Studio基础上,又推出了一套新的设计开发工具系列,Expression Studio。

Expression Studio设计工具系列包含四项主要产品:●Expression BlendExpression Blend(下称Blend),是一款用于设计桌面和Web应用用户界面的可视化工具。

用户可以通过拖拉控件方式创建用户交互界面;另外Blend中,包含一款软件原型建模工具SketchFlow, 该工具允许用户快速开发出专业的项目原型,创建设计原型后,以丰富的界面效果展示给客户,该工具将在后文详细讲述。

●Expression DesignExpression Design(下称Design),是一款专业的图形图像设计编辑工具,主要是为项目美工设计人员准备,如果你对Photoshop,Fireworks或者Illustrator熟悉,可以把Design看做同类产品,其中使用原理大部分都是相同的,而Design的优势是可以和Blend完美无缝结合,创建图形后,可以直接转换成为XAML,供Blend调用,由于本系列教程是讲述 Blend,这里就不再对Design过多描述,在后文用到时,我们将详细讲述。

●Expression EncoderExpression Encoder(下称Encoder)是一款专业的视频编辑工具,开发人员可以使用该工具编辑视频项目,并发布到Web服务器,Silverlight项目可以在应用中进行高质量播放调用。

由于本系列教程是讲述 Blend,这里就不再对Encoder过多描述,在后文用到时,我们将详细讲述。

●Expression WebExpression Web(下称Web),是一款专业的Web页面设计工具。

如果您对Dreamweaver熟悉,可以把Web看做同类产品。

Sliverlight经典入门教程

Sliverlight经典入门教程

【原文地址】First Look at Silverlight 2【原文发表日期】 Friday, February 22, 2008 6:41 AM跨平台/跨浏览器的 .NET 开发Silverlight 2 包含了.NET 框架的一个跨平台,跨浏览器版本,促成了在浏览器中运行的一个丰富的 .NET 开发平台。

开发人员可以使用任何一门 .NET 语言(包括VB, C#, JavaScript, IronPython 和 IronRuby)来编写Silverlight 应用。

我们将推出Visual Studio 2008 和 Expression Studio的工具支持,来促成建造Silverlight方案时开发人员与美工设计师间良好的工作流和集成。

这个即将发布的Silverlight 2 Beta1 版本提供了能促成精妙的RIA应用开发的一套丰富的功能集。

这些功能包括:∙WPF UI框架: Silverlight2包括了一个基于WPF的富用户界面框架,该框架将极大地方便建造丰富的Web应用。

其中包括强大的图像和动画引擎,以及对像控件,布局管理,数据绑定,样式和模板皮肤这样高级的UI功能的丰富支持。

Silverligh中的WPF UI框架是与完整的 .NET 框架中的WPF UI框架特性相兼容的一个子集,允许开发人员重用技能,控件,代码和内容来同时建造丰富的跨浏览器的web应用,以及丰富的桌面Windows应用。

∙丰富的控件: Silverlight 2包括了一套丰富的内置控件,可为开发人员和美工设计师用来快速地建造应用。

这个即将发布的Beta1版本将包括核心的表单控件(TextBox, CheckBox, RadioButton等),内置的布局管理面板(StackPanel, Grid, Panel等),常见的功能性控件(Slider,ScrollViewer, Calendar, DatePicker等),以及数据操作控件(DataGrid, ListBox等)。

IIS下配置SilverLight

IIS下配置SilverLight

在Windows 2003 IIS 6.0环境下在Silverlight中需要使用xap、XAML文件类型,如果您想在IIS服务器上使用Silverlight 4.0程序,所以必须在IIS中注册 xaml和xap的MIME文件类型。

打开IIS->站点属性->HTTP头->MIME类型->新建:扩展名: .xapMIME类型:application/x-silverlight扩展名: .xamlMIME类型: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下面我们就这两个步骤,进行详细说明:一、在VS2010中发布应用程序1. 开发环境VS2010,web站点http://localhost:46522. 发布(1)web项目上点右键,选择发布菜单:(2)在发布Web窗口中选择发布方法为“文件系统”①,指定发布的目标位置②,选择“发布前删除所有现有文件”③,点击发布按钮,进行发布。

Silverlight认证题(选择题)

Silverlight认证题(选择题)

0一、基础题(每题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程序使用mvvmlight开发框架教程

现有Silverlight程序使用mvvmlight开发框架教程

现有Silverlight程序使用mvvmlight开发框架教程1孙高勇学习整理2012-03-161)创建Silverlight 应用程序。

2)添加mvvmlight引用,如果使用模板创建,会自动生成引用,而这里我们需要自己添加。

3)添加ViewModels、Locators、Models文件夹。

4)为MainWindow添加ViewModel,在解决方案浏览器中,右键ViewModel文件夹,添加新类,类名称为MainViewModel,如果安装了mvvmlight模板,选择类模板为MvvmViewModel5)添加类ViewModelLocator,我们叫它ViewModel加载器,在解决方案浏览器中,右键项目名称,添加新类,类名称为ViewModelLocator,如果安装了mvvmlight模板,选择类模板为MvvmViewModelLocator。

6)打开App.Xaml,先添加ViewModel命名控件引用,然后为ViewModelLocator添加一个全局的资源,app.xaml的内容如下:<Applicationx:Class="SilverlightApplication8.App"xmlns="/winfx/2006/xaml/presentation"xmlns:x="/winfx/2006/xaml"xmlns:d= "/expression/blend/2008"xmlns:mc="/markup-compatibility/2006"xmlns:vm="clr-namespace:SilverlightApplication8.Locators"mc:Ignorable="d"><Application.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionary Source="Assets/Styles.xaml"/></ResourceDictionary.MergedDictionaries><vm:ViewModelLocator x:Key= "Locator" d:IsDataSource= "True" /> </ResourceDictionary><!--全局 View Model 加载器--></Application.Resources></Application>7)打开MainWindow.xaml文件,首先为MainWindow设置DataContext为MainViewModel,MainWindow.xaml代码如下:<UserControlx:Class="SilverlightApplication8.MainPage"xmlns="/winfx/2006/xaml/presentation"xmlns:x="/winfx/2006/xaml"xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Control s.Navigation"xmlns:uriMapper="clr-namespace:System.Windows.Navigation;assembly=System.Windows.Contro ls.Navigation"xmlns:d="/expression/blend/2008"xmlns:mc="/markup-compatibility/2006"mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"DataContext= "{Binding Main,Source={StaticResource Locator}}">。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

为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 小组件控件。

了解Silverlight 2 自定义控件的最佳方法是一步一步一点一点地创建一个Silverlight 2 自定义控件。

这样,您不仅能了解控件的各个组成部分,还能了解它们是如何组合到一起的。

以下教程描述了如何构建SimpleButton 控件,该控件复制内置Button 控件的外观和行为的重要方面,并且可以从该控件直接看到控件开发的情况,即Silverlight 样式。

步骤1:创建新的Silverlight 项目创建自定义控件的第一步是启动Visual Studio® 2008(确保您已为Visual Studio 安装了Silverlight 加载项,这样才可以创建Silverlight 项目)并创建一个项目。

通常您需要创建Silverlight 类库项目,这样该控件才可以编译到自己的程序集并作为引用添加到将使用该控件的项目。

我将采用一个稍微不同的途径来创建一个Silverlight 应用程序项目,以便在同一项目中构建并使用该控件。

所以,我们首先创建一个名为SimpleButtonDemo 的新Silverlight 应用程序项目,如图1所示。

当Visual Studio 试图为Silverlight 项目创建随附的Web 项目时,选择“是”。

图 1 创建SimpleButtonDemo 项目(单击图像可查看大图)步骤2:从控件(或ContentControl)派生下一步是添加代表此控件的C# 类。

至少,为了继承基本的控件功能,该控件类应从Silverlight System.Windows.Controls.Control 类派生。

但是,它也可以从ContentControl 和ItemsControl 等Control 派生类派生。

许多内置控件可以直接或间接从添加了Content 属性的ContentControl 派生,而该属性允许对控件的内容(如按压按钮表面上的内容)进行自定义。

ListBox 控件则从ItemsControl 派生,ItemsControl 可以实现用来向用户提供项目集合的控件的基本行为。

因为我们要实现按钮,所以将从ContentControl 派生。

使用Visual Studio 中的“添加新项”命令为SimpleButtonDemo 项目添加新C# 类。

将文件命名为SimpleButton.cs。

然后打开SimpleButton.cs 并修改SimpleButton 类,这样它就可以从ContentControl 派生:复制代码namespace SimpleButtonDemo{public class SimpleButton : ContentControl{}}此时,您已实现了单纯的自定义控件,该控件可在XAML 文档中通过声明进行实例化。

为了说明此问题,将下列语句添加到Page.xaml:复制代码<custom:SimpleButton />为了使Silverlight 可以识别此声明,您还需要将以下属性添加到Page.xaml 的根UserControl 元素:复制代码xmlns:custom="clr-namespace:SimpleButtonDemo; assembly=SimpleButtonDemo"您可以看到,clr-namespace 能够识别在其中定义SimpleButton 类的命名空间,而程序集可以识别包含此控件的程序集。

在此示例中,控件程序集和应用程序程序集是同一个程序集。

如果SimpleButton 在名为MyControls.dll 的单独程序集中实现,您需要将程序集设为与“MyControls”相同。

图2中的代码显示了完成上述修改后的Page.xaml 的内容。

顺便说一下,您不必将custom 作为自定义控件的前缀;只需直接使用foo 或贵公司的名称作为前缀即可。

图2 Page.xaml复制代码<UserControl x:Class="SimpleButtonDemo.Page"xmlns="/client/2007"xmlns:x="/winfx/2006/xaml"xmlns:custom="clr-namespace:SimpleButtonDemo;assembly=SimpleButtonDemo"Width="400" Height="300"><Grid x:Name="LayoutRoot" Background="White"><custom:SimpleButton /></Grid></UserControl>现在,通过启动SimpleButtonDemo_Web 项目(Visual Studio 已将该项目添加到解决方案)中的SimpleButtonDemoTestPage.aspx 或SimpleButtonDemoTestPage.html 测试页面,您可以看到您的努力成果了。

图3显示了SimpleButtonDemoTestPage.html 在浏览器中的外观。

当然,目前主页中还没有什么内容,但在下一步骤中情况将有所变化。

图 3 显示SimpleButton 控件(单击图像可查看大图)步骤3:创建控件模板在上一步骤中,浏览器窗口空白的原因是,虽然已对SimpleButton 实例化,但它不呈现用户界面(UI)。

您可以通过修改Page.xaml 中的SimpleButton 声明使其包含控件模板来纠正此问题。

图4中的代码显示了修改后的控件声明。

图4 修改后的控件声明复制代码<custom:SimpleButton><custom:SimpleButton.Template><ControlTemplate><Grid x:Name="RootElement"><Rectangle x:Name="BodyElement" Width="200" Height="100"Fill="Lavender" Stroke="Purple" RadiusX="16" RadiusY="16" /><TextBlock Text="Click Me" HorizontalAlignment="Center"VerticalAlignment="Center" /></Grid></ControlTemplate></custom:SimpleButton.Template></custom:SimpleButton>现在,此声明可以初始化控件的Template 属性(该属性定义控件的可视树),以包含位于 1 行 1 列的Grid 内部的Rectangle 和TextBlock。

再次在浏览器中打开SimpleButtonDemoTestPage.html,输出内容将发生很大变化(请参见图5)。

现在,SimpleButton 具有了外观!图 5 SimpleButton 控件(单击图像可查看大图)步骤4:创建默认控件模板要求开发人员使用您的控件定义他们自己的控件模板是不合理的。

自定义控件应具有默认的模板,因此即使简单的声明(如图2中所示)也会在页面上显示某些内容。

提供默认模板后,人们仍可以使用其他模板(如图4中的模板)将其覆盖,但如果不要求提供模板,您的控件会更加吸引人。

用于为自定义控件定义默认模板的机制是从WPF 借用的。

首先,向控件项目添加名为Generic.xaml 的文件。

(是的,此文件必须命名为Generic.xaml。

大小写无关紧要,但文件名不能改变。

)然后,在Generic.xaml 中定义样式,该样式使用属性setter 将值分配给控件的Template 属性。

Silverlight 运行时自动在控件程序集(Generic.xaml 作为数据源嵌入其中)中查找Generic.xaml 并将样式应用到控件实例。

除了定义默认模板外,此样式还可以将默认值分配给其他控件属性,如Width 和Height 属性。

要亲身体验,请使用Visual Studio 的“添加新项”命令将名为Generic.xaml 的文本文件添加到SimpleButtonDemo 项目中。

然后使用图6中的代码替换Generic.xaml 的内容。

相关文档
最新文档