Silverlight是基于时间线的,不象Flash是基于帧的,所以在Silverlight中,很少看到有文档专门介绍SL中的帧。...但是我们从动画原理知道,动画只不过是一幅幅静态图片连续播放,利用人眼的视觉暂留形成的,因此任何动画从原理上讲,至少还是有每秒播放多少帧这个概念的。...Silverlight的sdk文档中,有一段话: ... maxFramerate 值可通过 Silverlight 插件对象的 maxframerate 参数进行配置。...maxframerate 参数的默认值为 60。currentFramerate 和 maxFramerate 是报告每秒帧数 (fps) 的值。实际显示的帧速率设置为较低的数字。...,运行效果: 拖动滑块,观察一下时间更新的快慢,同时注意浏览器左下角状态栏的显示,当然 CompositionTarget.Rendering不仅仅只能用来显示时间,还能做更多的事情,大家就尽情发挥想象吧
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
如果ItemsControl的Items内容不是对应的子元素控件,ItemsControl会创建对应的子元素控件作为容器再把Item放进去。...ItemsControl派生类的ItemContainer控件要使用父元素名称做前缀、-Item做后缀,例如ComboBox的子元素ComboBoxItem,这是WPF约定俗成的做法(不过也有TabControl...中需要提供一个ItemsPresenter,用于指定ItemsControl中的各Item摆放的位置。...Silverlight是WPF的简化版,Moonlight则是很久没维护的Silverlight的简陋版,这使得Moonlight反而成了很优秀的WPF教学材料。...当然,也可以参考Silverlight的实现,使用JustDecompile可以轻松获取Silverlight的源码,这也是很好的学习材料。
Silverlight 3.0 中的 WriteableBitmap 尽管矢量图形非常的强大但是在有些情况下还是需要用到位图,因为他们在运行时能得到更高的执行效率和渲染效果。...在Silverlight 2.0中获得位图的唯一途径就是从服务器下载并将其嵌入到一个Image元素上。 在Silverlight 3.0中添加了一个新的图形类,WriteableBitmap。...object sender, System.Windows.RoutedEventArgs e) { // 创建一个WriteableBitmap并且把需要呈现位图的元素赋值给...WriteableBitmap wb = new WriteableBitmap(myMediaElement, null); // 创建一个Image元素来承载位图...; image.Margin = new Thickness(5); image.Source = wb; // 将Image元素放入容器控件中
1、Silverlight + OpenXML Video :This is a Silverlight proof of concept application that displays random...Library :Provides easy programmatic access to Silverlight Streaming accounts to upload, delete and...http://www.codeplex.com/DLRScript 8、 Webyog公司刚发布了一套非常酷的开源Silverlight图表控件(带有动画支持),允许你轻松地建造好看的图表,他们的模型极大地方便了在现有的...HTML或AJAX应用中图表组件的使用。...DataTemplate search criteria is expanded to support find by item interface, and/or base type.
现在很多的需求中需要一个插件实例和另一个实例进行通讯。在同一个页面中调用Html、js等来通讯,而这个往往有一些限制,需要专门的去设置一些权限。...在Silverlight 3.0 中新增了一个功能使得跨越实例的通讯变得极为的简单,这个功能为本地连接。 通过本地连接就也可以在不同页面间多个Silverlight实例创建通讯通道。...这样就可以创建多个基于Silverlight的应用程序或者基于其他技术的内容在一起的复杂布局。...,但是只接收来自指定发送器域的消息。...-3-using-local-connections http://www.wintellect.com/CS/blogs/jprosise/archive/2009/03/26/silverlight
序列化简言之是这样一种能力:能够把复杂的对象(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。) 这两个控件的的继承关系如下: ?...在 Silverlight 中, 绝大多数控件都继承自 FrameworkElement , 因为绝大多数控件都需要 Framework Element 提供的功能, 直接继承自 UIElement 的控件几乎没有
默认情况下,Silverlight自带的ListBox控件如果内部有多个TextBox,用户无法用键盘上的Tab键,在ListBox内部的TextBox之间切换。...但Teterik RadControls 中的telerik:ListBox却很好的解决了这个问题,只要把telerik:ListBox的IsTabStop设置成false,同时把TabNavigation... Silverlight...自带的ListBox,无法应用Blend中的MouseDragElementBehavior(即:应用该行为仍然无法拖动ListBox),但是telerik:ListBox发现居然可以(本例中,用鼠标按住...telerik:ListBox中的任一文本框的边框,即可拖动整个ListBox)--商业控件就是给力!
如果展示类似这种比较cool的图片轮换效果,用RadTransitionControl控件就对了,它提供的过渡效果非常cool!...原理并不复杂,可参见以前写的 Silverlight之ListBox/Style学习笔记--ListBox版的图片轮换广告. xaml部分: 的样式--> 的样式--> DataTemplate x:Key="DataTemplate"> <Grid Width="22" Height="22
今天有个功能需要在网格中输入时间,本来是用文本框的,但是客户说不知道格式,要求用选择的形式,好像silverlight又没有能选择时间的控件,谷歌下得到一个曲线救国的答案,记录下 1 2 3 4 DataTemplate> 5... 6 DataTemplate> 7 8 9 10 DataTemplate> 11...> 14 15 能显示时间,但是还是不能选择到时间,时间部分需要手输,而且在编辑状态看不到,已有找到更好的办法再更新
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(或是需要改进的地方)
在web开发中,带checkbox的tree是一个很有用的东东,比如权限选择、分类管理,如果不用sl,单纯用js+css实现是很复杂的,有了SL之后,就变得很轻松了 解决方案一: 利用Silvelright...ToolKit(微软的开源项目),项目地址http://silverlight.codeplex.com/ 在线演示地址:http://silverlight.net/content/samples/...sl4/toolkitcontrolsamples/run/default.html 解决方案二: telerik公司的Rad for Silverlight商业控件(收费控件) 在线演示地址 http...://demos.telerik.com/silverlight/ 不管用哪一种方案,代码都是差不多的,为了实现数据绑定,先创建一个silverlight类库项目BusinessObject,定义数据项实体...this, new PropertyChangedEventArgs(propertyName)); } } } } 好了,开始干正事儿了: toolkit中的
在这里,您的根ViewModel被传递给定位器,以确定应用程序的shell应该如何呈现。在Silverlight中,这将导致设置或您的RootVisual。在WPF中,这将创建主窗口。...因此,为了将绑定和操作约定应用于DataTemplate,必须将Bind.Model=“{Binding}”附加属性添加到DataTemplate内的根元素。...这意味着它将遍历树,直到找到合适的根节点,例如窗口、UserControl或没有父节点的元素(表示我们在DataTemplate中)。...我不提供这种开箱即用的实现,因为它不能保证在Silverlight中成功。原因是Silverlight不允许您获取私有字段的值,除非调用代码是定义字段的代码。...配置约定的常用方法之一是向系统中添加新约定。最常见的情况是添加Silverlight toolkit控件或WP7 toolkit控件。
项目开发中遇到一个要求,需要将ComboBox右侧中的小三角箭头给去掉,通过Blend工具“编辑ComboBox的模板副本”得知,这是一个名为"BtnArrow"的Path。...但是在CS代码中,是无法引用到这个控件的。...注: // // Summary: // 在实例化的 System.Windows.Controls.ControlTemplate 可视化树中检索已命名的元素...// // Returns: // 模板中的命名元素(如果已找到)。...如果在模板中找不到具有名称 childName 的元素,则可能返回 null。
这个示例中除了ListBox控件其它都自带Header,但是ListBox没有Header属性,只好用一个TextBlock模仿它的Header。...Header="ListBox"> 这样,只要在HeaderedContentControl的样式中模仿其它含Header...WPF中本来就有这个控件,它是Expander、GroupBox、TabItem等诸多拥有Header属性的控件的基类,十分方便好用。...UWP中模仿这个控件很简单,而且很适合用来学习自定义控件的进阶知识。 2....定义HeaderedContentControl结构 比起WPF,借鉴Silverlight的HeaderedContentControl比较好,因为Silverlight的比较简单。
DependencyObject Binding 在Silverlight之前的版本中,其支持的元素绑定只是允许绑定继承自FrameworkElement类下元素,但是比如一些形变比如Transformations...现在数据绑定也可以绑定继承自DependencyObject下的任何元素。..."1" VerticalAlignment="Top" /> ================================= String Formatting 新版的Silverlight4...中新增加了格式化字符串的能力。...现在可以使用扩展标记StringFormat来做一些比如日期、货币等的格式化。 在VS2010中也提供了可视化的支持。
://schemas.microsoft.com/winfx/2006/xaml" Width="400" Height="300"> DataTemplate...对于ItemsPanelTemplate中的命名控件,比如下面这样的: 如果想在listItem_MouseLeftButtonDown中引用sp,按正统处理方法还真是比较麻烦(各位可以google...Loaded="sp_Loaded"> 然后在后端代码中,添加一个私有变量,并处理sp_Loaded事件: StackPanel... _sp = sender as StackPanel; } 这样,在listItem_MouseLeftButtonDown中就能借助"_sp"正确引用到ItemsPanelTemplate中的
1.粘包 目前sl中的socket只能用tcp/ip协议,而tcp/ip本质是一个"流"协议,也就是说数据无边界,发送的就是一连串的字节(没有数据包的概念),因此连续发送时有所谓的“粘包”现象,详细解释如下...,我就不知道鸟:) 所以如果想正确的划清数据边界,得自己想办法封包/拆包 常见的解决办法:在发送方与接收方制定一个共同的约定,比如定义一个结构体struct,把“包长度,包序号,要发送的数据,包的唯一标识......”这一堆东西封装在struct中,然后通过序列化最终得到一个byte[]进行发送。...网络编程中,会有各种不可控的情况,所以异常的捕获很重要,否则程序会用着用着就挂掉了。...必要时可以将连接关闭) 后话:很期待silverlight在未来的版本中,加入udp协议支持,这样应用范围将更加广泛。
http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:common ="clr-namespace:Common.Silverlight...;assembly=Common.Silverlight" xmlns:bo ="clr-namespace:BusinessObject;assembly=BusinessObject"...--数据项模板--> DataTemplate x:Key="cboItemTemplate"> ...--选中时的模板(IsEditable=True时失效)--> DataTemplate x:Key="cboSelectionBoxTemplate">...:) RadComboBox在我看来有一个小小的缺憾:当设置为可编辑模式时(IsEditable="True"),选中项的模板(SelectionBoxTemplate)会失效(有一个近似hack的解决办法
领取专属 10元无门槛券
手把手带您无忧上云