为Silverlight创建自定义控件
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的用户管理系统设计与实现摘要:以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](https://img.taocdn.com/s3/m/1ce91dd776eeaeaad1f3301c.png)
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中创建自定义控件和自定义类型

图1.错误的表现形式
这是我今天做的一个“严格自定义类型”的实例。
请注意,在工具栏左侧,有一个被红色圆圈和反斜杠修饰的OK。
这意味着:错误。
请看LabVIEW对这个错误的解释,点击“帮助”弹出下图。
图2.点击OK后显示的错误原因
再来看一下LabVIEW的帮助对于这个错误的说明。
图3.来自帮助系统的说明
帮助文件还说到,控件编辑器(图1所示窗口)一次只能包含一个输入控件或显示控件。
数组或者簇本身就是一个控件,也可以说是一个容器(控件容器),所以能够包含多个控件,但对外还表现为一个控件。
下面再给出一个自己做的正确的例子。
图4.正确的“严格自定义类型”例子
错误提示的“OK”按钮不见了,取而代之的是一个扳手样子的按钮,我们可以进一步定义外观。
最后附上从LabVIEW帮助文件中打印出来的相关内容,权威、清晰。
创建自定义输入控件.pdf。
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目前已经成为互联网应用当中的终点,其本身具有的巨大市场前景,尤其是提供丰富的网路表示控件方面已经成为了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就是一个基于模板的自动化开发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):图片处理概述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格式的图片。
<Canvas Background="#CDFCAE"><Rectangle Canvas.Left="20" Canvas.Top="80"Width="240" Height="136" RadiusX="15" RadiusY="15"><Rectangle.Fill><ImageBrushImageSource="a1.png"></ImageBrush></Rectangle.Fill></Rectangle><Image Source="b1.png" Canvas.Left="320" Canvas.Top="80"></Image></Canvas>运行后如下所示:图片拉伸当我们创建了一个图片的时候,如果不指定它的宽度和高度,它将会使用默认的规格来显示;如果指定了高和宽,图片将显示在指定高和宽的矩形区域内。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 的内容。