因此在本文中,我们探索了 typescript 的两个功能,可以帮助我们解决这个问题。 从类派生接口 TypeScript 的一个鲜为人知的特性是接口可以从类派生。...但是有一个重要的警告:实现的所有私有或受保护成员都将会在派生接口中公开。 如果你对此感到惊讶,你并不孤独。...当我第一次遇到它时,发现它非常反直觉,但在官方文档中解释了其背后的基本原理:【https://www.typescriptlang.org/docs/handbook/interfaces.html】...值得庆幸的是存在一个简单的解决方法 使用映射类型 我们可以使用从类型的公共成员派生的映射类型【https://www.typescriptlang.org/docs/handbook/release-notes...,或者将一个实现保留为规范实现,从中派生接口并使其他实现符合该规范。
Silverlight 2 包含一个 CLR,但并不是其他 .NET 应用程序和程序集使用的 CLR. Silverlight CLR 也称为 CoreCLR,在设计时充分考虑了不同用途。...CoreCLR 专为跨平台互操作性而设计,可与 CLR 同时运行并支持不同的安全模型以及不同版本的基础类库。 CoreCLR 是 Silverlight 使用的虚拟机。...Silverlight 和 .NET 应用程序使用不同 CLR 意味着您不能在两个针对 .NET 应用程序和 Silverlight 应用程序的项目中引用同一个程序集。...Silverlight 正常使用所需的功能集非常小-仅仅是内核。但任何 .NET 程序集都要链接标准版本的 mscorlib,这就是问题所在。...2 中的安全性:http://msdn.microsoft.com/magazine/cc765416
Silverlight是基于时间线的,不象Flash是基于帧的,所以在Silverlight中,很少看到有文档专门介绍SL中的帧。...但是我们从动画原理知道,动画只不过是一幅幅静态图片连续播放,利用人眼的视觉暂留形成的,因此任何动画从原理上讲,至少还是有每秒播放多少帧这个概念的。...Silverlight的sdk文档中,有一段话: ... maxFramerate 值可通过 Silverlight 插件对象的 maxframerate 参数进行配置。...测试xaml: 代码 by 菩提树下的杨过 UserControl x:Class="CompositionTarget_Rendering.MainPage" xmlns="http:/...Margin="0,5,0,0" HorizontalAlignment="Center" Text="60" > UserControl
Silverlight 3.0 中的 WriteableBitmap 尽管矢量图形非常的强大但是在有些情况下还是需要用到位图,因为他们在运行时能得到更高的执行效率和渲染效果。...在Silverlight 2.0中获得位图的唯一途径就是从服务器下载并将其嵌入到一个Image元素上。 在Silverlight 3.0中添加了一个新的图形类,WriteableBitmap。...他可以动态的呈现位图,再结合上矢量图形一起运用,对于拍摄视频播放快照、生成算法内容(如分形图像)和数据可视化(如音乐可视化应用程序)很有用。...image.Margin = new Thickness(5); image.Source = wb; // 将Image元素放入容器控件中...WriteableBitmap转PNG http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx
要想成为Silverlight 的开发高手,熟练通达XAML语法是必由之路。现在我们来一个空的XAML模板。...--声明各种Silverlight对象、资源和动画声明--> Silverlight 2.0的模板是这样的: UserControl x:Class="DiggSample.Page...--声明各种Silverlight对象、资源和动画声明--> UserControl> 这两个XAML模板,最上层的Root Element分别以---和UserControl...> --UserControl>来声明,然后在其中开始声明格式各样的Silverlight对象。...你的XAML至少需要声明第一个命名空间,你的Silverlight才能够运行,否则就会产生错误,第二个命名空间在许多场合会用得到,所以把它也加入当作默认的模板。
现在很多的需求中需要一个插件实例和另一个实例进行通讯。在同一个页面中调用Html、js等来通讯,而这个往往有一些限制,需要专门的去设置一些权限。...在Silverlight 3.0 中新增了一个功能使得跨越实例的通讯变得极为的简单,这个功能为本地连接。 通过本地连接就也可以在不同页面间多个Silverlight实例创建通讯通道。...这样就可以创建多个基于Silverlight的应用程序或者基于其他技术的内容在一起的复杂布局。...,但是只接收来自指定发送器域的消息。...-3-using-local-connections http://www.wintellect.com/CS/blogs/jprosise/archive/2009/03/26/silverlight
在silverlight beta 2 中已经支持了动态语言.但是在Visual Studio 和 Experssion Blend中还没有使用动态语言的模版.我们目前只可以手动建立. ok 开始吧~...:"有趣 不用js也能创建silverlight" 注意意中的source参数"app.xap".我们的文件中并没有这个文件.这是由SDK中的Chiron自动生成的.你存放sl代码的文件夹也必须叫这个名字...在网站属性页中的启动选项选择"启动外部程序",选中sdk中的"Chiron.exe".命令行参数为"/b".工作目录设置为项目所在目录. ? 按F5运行程序 ? ?...显示了"Welcome to Ruby in Silverlight".这是由rb文件控制的. 修改代码. ...def initialize #txtMessage.text = "Welcome to Ruby in Silverlight" end 注释掉设置文本的语句.
那么随着对象的属性越来越多,再加上从对象派生出去的子对象,子对象再生出“孙子”对象......最终的对象运行实例中会有大量的私有成员,而每私有成员都要分配内存,占用一定的资源。...,静态成员在内存中只占一份,这正是我们所要的!...这张图描述了GetValue与SetValue的内部读取策略. 4.依赖属性的使用示例: 下面我们演示如何给一个用户自定义控件添加Message依赖属性 (1)先建一个Silverlight User...> CS部分:(技巧:vs2008中,只要键入propdp,再连敲二次Tab键,vs就会自动添加一个依赖属性的代码模板) using System.Windows; using System.Windows.Controls...属性值,同时MyControl中的文本控件的文字也将变成"新值" 转载请注明来自菩提树下的杨过 文中源文件代码:DPStudy.rar
序列化简言之是这样一种能力:能够把复杂的对象(Object)变成某种格式的字符串(常见的格式有xml,string,二进制文件等),这样可以方便的在各种系统中传输或交换(比喻socket编程中的数据包只能用...,构造一个复杂对象,然后序列化为二进制格式,得到该格式后,再反序列化(还原)为复杂对象 Winform中的序列化 1 using System; 2 using System.IO; 3...中,传统的序列化方式有很多被精减掉了(比如BinaryFormatter之类),唯一得以保存的只剩下System.Xml.Serialization,所以SL中只能通过xml来序列化对象(虽然xml序列化后的字节数相对...Binary有点大,不过我们也别无选择),另外有一点很让人不习惯的是,需要序列化的自定义类中,居然不需要加[Serializable],[DataMember]这类标记!...(这一点让我郁闷了好久,还为此在网上疯狂的百度,google为啥sl中不识别Serializable) 1.先定义一个需要序列化的类 自定义类 namespace SerializeDemo {
Silverlight 中的 UIElement 与 FrameworkElement 在 Silverlight 中, 有两个比较重要的基础控件 UIElement 和 FrameworkElement...(UIElement 是 Silverlight 中具有可视外观并可以处理基本输入的大多数对象的基类。)...(FrameworkElement 为 Silverlight 布局中涉及的对象提供公共 API 的框架。...FrameworkElement 还定义在 Silverlight 中与数据绑定、对象树和对象生存期功能区域相关的 API。) 这两个控件的的继承关系如下: ?...从文档以及类图可以看出, UIElement 是一个比较低级的控件, 仅仅具有可视化外观和处理基本的输入事件, 例如控件大小、 透明度、 鼠标键盘事件以及特效等, 如果需要开发的控件仅仅需要这些基本的属性以及事件
一般我们在silverlight中点击右键会出现如下的对话筐. 在flash中 其提供了一个可定制话的右键菜单系统....(ContextMenu) 这个在silverlight中也是一样可以做到的....过程如下: 1.添加一个到Page.xaml中 UserControl x:Class="rightClick.Page" xmlns="http://schemas.microsoft.com... UserControl> 2.在页面中设置silverlight的参数Windowless="true" Silverlight ID="...页面的代码 新建立一个ContextMenuInterceptor类.这个类是用来处理页面中“OnContextMenu”事件的.在用到HTMLPage对象你需要引入System.Window.Browser
如果展示类似这种比较cool的图片轮换效果,用RadTransitionControl控件就对了,它提供的过渡效果非常cool!...原理并不复杂,可参见以前写的 Silverlight之ListBox/Style学习笔记--ListBox版的图片轮换广告. xaml部分: UserControl xmlns:telerik="http...--列表框的样式--> 的样式--> <Setter...{ var _currentIndex = this.PhotosListBox.SelectedIndex; if (isForward) //如果 从左向右
Silverlight/WPF中,如果要在多线程中对界面控件值做修改,用Dispatcher对象的BeginInvoke方法无疑是最方便的办法 ,见:温故而知新:WinForm/Silverlight多线程编程中如何更新...UI控件的值 但今天发现WPF中的BeginInvoke却无法自动将匿名方法/Lambda表达式转变成Delegate类型(注:对委托,匿名方法,Lambda感到陌生的朋友先阅读温故而知新:Delegate...,Action,Func,匿名方法,匿名委托,事件) silverlight中的代码片段: private void button1_Click(object sender, RoutedEventArgs...,同时还要定义相应的委托类型,难道不能象Silverlght中那样清爽一点么?...不过仍然有点疑问:为啥编译器能自动认别Silverlight,却不认WPF呢?这算不算是编译器的BUG(或是需要改进的地方)
从ModelLocator开始 ModelLocator只是Cairngorm中的一个部分,要使用它并不一定要把Cairngorm所有的架构都搭建起来,ModelLocator是可以单独来使用的。...ModelLocator是Silverlight程序中的一个数据的容器,所有的数据都存在于一个类中"singleton class"。这个类有且仅有一个实例。他使用的是设计模式中的单件模式。...一个最简单的例子,我想通过Silverlight中的Slider控件来控制一个矩形Rectangle的Width属性。...首先建立Silverlight项目并在项目网站上获取Cairngorm,添加对其的引用。...:) 基于Cairngorm的Silverlight开发 - part1
项目开发中遇到一个要求,需要将ComboBox右侧中的小三角箭头给去掉,通过Blend工具“编辑ComboBox的模板副本”得知,这是一个名为"BtnArrow"的Path。...但是在CS代码中,是无法引用到这个控件的。...// // Returns: // 模板中的命名元素(如果已找到)。...如果在模板中找不到具有名称 childName 的元素,则可能返回 null。...方法,所以只能在子类中使用,这也就是为什么在常规Xaml.cs文件中无法获取ContentTemplate中命名控件的原因。
实际开发中控件的数据源肯定是动态绑定的,不可能在xaml里写死item项。...OnPropertyChanged("IsSelected"); } } } } } NodeItem 主要用于treeview中的节点数据展示...get { return _sampleMenuItemCollection; } } } } TreeView、ContextMenu 为了将NoteItem中的...: PanelBar的Accordion效果 UserControl x:Class="Telerik.Sample.Accordion" xmlns="http://schemas.microsoft.com...> 运行时截图: TabPanel+Frame 为了节省空间,将多个界面以Tab标签页方式整合在一起是常见的用法,每个标签页的内容通常是实例化一个单独的Xaml模块,可以考虑每个标签页的内容以Frame
silverlight小技巧 silverlight于javascript通信 在 silverlight中可以直接使用“HtmlPage.Window.Invoke()” 来调用js方法。...也可用“RegisterScriptableObject().”和“[ScriptableMember]”把方法注册到js脚本 中,其调用方法为 “document.getElementById("mysilverlightControlID...control.Content.Page.UpdateText("你好(来自javascript)"); } Page.xaml UserControl...White"> UserControl
Silverlight中只有可视化树,没有WPF中的逻辑树,这一点可从SL的sdk文档中得到印证: 可视化树概念也存在于 WPF 中,它与 Silverlight 的可视化树概念类似。...Silverlight 中的确存在某些(但并非所有)相关的属性行为,但由于没有用于访问这些行为的帮助器 API,因此,逻辑树概念在 Silverlight 中将没有用武之地,因此本文档不讨论它。...缺少逻辑树而引发的一个很小的兼容性问题是:FrameworkElement..::..Parent 属性行为在 Silverlight 版本 3 中是不同的,它实际上报告可视化树父项。...GetChild 使用提供的索引,通过检查可视化树获取所提供对象的特定子对象。 GetChildrenCount 返回在可视化树中在某一对象的子集合中存在的子级的数目。 ...GetParent 返回可视化树中某一对象的父对象。
做silvelight也有一段时间了,相册、游戏,刚刚完成的showcase这个小程序算是一个阶段了。这里就以showcase这个项目来做一下CaseStudy。...数据篇-Loading的制作 silverlight自带了一个loading。但是由于界面的需求可能需要定制化一下。这里我的思路是做两个sl文件用其中一个去加载另外一个。...也就是说有两个xap文件一个是主要的也就是你做的silverlight程序文件,另一个小的是用来做loading的。...参考文章: 技巧:在Silverlight中如何访问外部xap文件中UserControl public partial class Page : UserControl { public ...) { this.ResizeFrame(); } void ResizeFrame() { (this as UserControl
Silverlight Load Client Image 加载客户端图片 这里做了一个用Silverlight加载客户端图片的例子。并且用了一个最简单的数据双向绑定。...beginning 这里例子的代码很简单不用做太多的说明。...前端界面设计 XAML: UserControl x:Class="LoadClientImage.Page" xmlns="http://schemas.microsoft.com...Grid.ColumnSpan="2" Grid.Row="1" Grid.Column="0" Stretch="UniformToFill" /> UserControl...{ model.Status = "加载失败"; } } 提示: 不要忘记引入“BitmapImage”的命名空间