要想成为Silverlight 的开发高手,熟练通达XAML语法是必由之路。现在我们来一个空的XAML模板。...--声明各种Silverlight对象、资源和动画声明--> Silverlight 2.0的模板是这样的: Silverlight对象、资源和动画声明--> 这两个XAML模板,最上层的Root Element分别以---和xaml 以x:开头的XAML声明对应到这个个别的命名空间。...你的XAML至少需要声明第一个命名空间,你的Silverlight才能够运行,否则就会产生错误,第二个命名空间在许多场合会用得到,所以把它也加入当作默认的模板。
silverlight中不存在Flash中的场景,有的只是一个个Xaml文件,你要是愿意,也可以把它看做"场景"或"窗口",刚开始接触sl时,对于多个xaml之间如何切换,调用,传递参数感到很棘手,下面是我总结的几种方法...: 1、A.xaml跳转到B.xaml (a)首先需要定义一个公用的接口(interface),如下: using System.Windows; namespace ChildWin.Code { ...public interface IContent { UIElement Content { get; set; } } } (b)A.Xaml与B.Xaml都实现该接口...btnChange点击后,当前"场景"将切换到Window2.xaml对应的"场景" 2、"主Xaml"中加载"子Xaml"(类似软件中的MDI窗口) 这个比较容易,在主Xaml中放置一个容器类的控件..."中以模态窗口方式弹出"子Xaml" 这个要用到sl3.0中的ChildWindow控件 (a)项目中先添加System.Windows.Controls的引用 (b)xaml文件头部加二行代码: xmlns
1.Overview 这篇文章主要分享从源代码角度解读wpf中xaml。...选择性的加载xaml(baml)文件来达到更改UI的操作。...XAML是有意义的。...BAML 并非新事物,它实际上就是 XAML 的二进制表示,当在 Visual Studio 中编译 WPF 应用程序时,所有 XAML 文件都被转换为 BAML这些 BAML 然后作为资源被嵌入到最...,原文地址在文章末尾】在 WPF 中,在 XAML 里面定义的对象的创建,实际上不是完全通过反射来进行创建的,在WPF框架里面,有进行了一系列的优化。
注:以下方法是百度上搜索得来的,整理一下转发于此 步骤1.先在silverlight项目中新建一个接口文件IContent.cs,内容如下(namespace请各位根据自己的实际情况修改): Code...文件Test.xaml和Test2.Xaml Test.Xaml完整内容如下: Code <UserControl x:Class="BookStore.Test" xmlns="http://...上的按钮将切换到Test2"场景") (Application.Current.RootVisual as IContent).Content = new Test2(); ...上的按钮将还回到Test"场景") (Application.Current.RootVisual as IContent).Content = new Test(); ...欢迎转载,但请注明来自"菩提树下的杨过" ?
Silverlight 2 包含一个 CLR,但并不是其他 .NET 应用程序和程序集使用的 CLR. Silverlight CLR 也称为 CoreCLR,在设计时充分考虑了不同用途。...CoreCLR 专为跨平台互操作性而设计,可与 CLR 同时运行并支持不同的安全模型以及不同版本的基础类库。 CoreCLR 是 Silverlight 使用的虚拟机。...但也有一些例外情况,比如 OpenFileDialog 和 IsolatedStorage(存储配额更改),在这种情况下,Silverlight 需要用户的明确同意才能打破沙箱的默认规则集。...Silverlight 和 .NET 应用程序使用不同 CLR 意味着您不能在两个针对 .NET 应用程序和 Silverlight 应用程序的项目中引用同一个程序集。...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:/.../schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx.../2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org
幸好,silverlight 3中要实现这一点非常容易(SL的设计者们确实想得很周到) vs2008中新建(new)一个项目(Project)时,不知道大家有没注意到“Silverlight导航应用程序...大概原则:特殊的规则写在前面,通用的规则写在后面 另一个问题,导航到类似"/Product?...id=123"这种地址后,在silverlight中如何象Asp.net中的Request.QueryString那样接受参数呢?...(这点跟asp.net不同) 最后看一下标题的问题,观察一下Silverlight中Page页自动生成的xaml代码: silverlight是如何自动把xaml中的title设置到html/aspx网页标题的呢? 其实内部原理我也不知道,哈!
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
传统的XAML如何适配不同分辨率 所谓的传统,是指在响应式设计没流行前XAML就已经存在的应对不同分辨率的技术,毕竟桌面客户端常常也调整窗体的大小,有些人还同时使用两个不同分辨率的屏幕。...响应式设计技术 微软的官方文档介绍了UWP中响应式设计常用的6个技术,包括重新定位、调整大小、重新排列、显示/隐藏、替换和重新构建,具体可见以下网站: ?...在下面的示例中StackPanel默认使用垂直排列,当页面的宽度超过720像素时改为水平排列。...使用AdaptiveTrigger可以做到前一节中提到的UWP中响应式设计常用的6个技术,除了UWP自带的AdaptiveTrigger,也可以自定义StateTriggerBase,这将在下一篇文章中介绍...XAML Controls Gallery就是一个很好的结合NavigationView的响应式布局示例: ? 5.
XAML的简单说明 XAML是用于实例化.NET对象的标记语言,主要用于构建WPF的用户界面 XAML中的每一个元素都映射为.NET类的一个实例,例如映射为WPF的Button对象...XAML可以在一个元素中嵌套另一个元素,例如Grid元素可以嵌套Button元素 了解XAML VisualStudio创建一个窗口,默认情况下产生的代码如下: 这段代码中包含两个标记元素,一个是...Application 用于定义应用程序资源和启动设置 任何一个XAML文档只能拥有一个顶级元素 属性 窗口标签中Title、Height、Width都是窗口的属性 在XAML文件中属性的值的类型总是字符串..., 但XAML的解析器可以把这些字符串转换成.NET的任意类型 名称空间 在上面代码中,用xmlns属性来标记此文档从属于哪个名称空间 为什么需要名称空间呢?...类上 代码隐藏类 XAML创建用户界面,但交互规则还是需要.NET语言编写 x:Class属性标记着与该XAML文件相配合的.NET类 注意这个类是一个“部分类” 这个部分类的构造函数中调用了InitializeComponent
现在很多的需求中需要一个插件实例和另一个实例进行通讯。在同一个页面中调用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 的控件几乎没有
XAML标签元素在silverlight运行时被转换成相应的对象,通过XamlReader类的Load方法,动态创建UI元素: 指定一条XAML内容字符串,为按照XML规则运行,XamlReader.Load...()现在需要你在你的XAML文件中指定一个xmlns; 通过XamlReader.Load方法把元素在内存中编译(这样就可以得到UI元素对象的引用,也有可能是null,或者报错);...最后把它添加到容器的子控件中。...参考资料: Silverlight 2的变化(Breaking Changes in Silverlight 2): http://www.cnblogs.com/worksguo/archive/2008.../03/07/1094347.html Silverlight2.0中的计时器类DispatcherTimer——不再使用Storyboard计时器 http://www.cnblogs.com/gowhere
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(或是需要改进的地方)
项目开发中遇到一个要求,需要将ComboBox右侧中的小三角箭头给去掉,通过Blend工具“编辑ComboBox的模板副本”得知,这是一个名为"BtnArrow"的Path。...但是在CS代码中,是无法引用到这个控件的。...// // Returns: // 模板中的命名元素(如果已找到)。...如果在模板中找不到具有名称 childName 的元素,则可能返回 null。...方法,所以只能在子类中使用,这也就是为什么在常规Xaml.cs文件中无法获取ContentTemplate中命名控件的原因。
Silverlight单元测试框架 微软的silverlight单元测试框架现在已经托管到了MSDN Code Gallery网站上,你可以在上边找到最新的Release版本和一些最新的资料。...项目 新建一个Silverlight项目 给MainPage.xaml做简单的修改 public partial class MainPage : UserControl {...set; } public MainPage() { InitializeComponent(); } } 单元测试中添加对其的引用...总结 使用TDD单元测试框架为Silverlight带来了一个更好的测试方案,你不用再一点一点的设置断点跟着程序跑。 能充分的进行单元测试,是提高软件质量,降低开发成本的必由之路。...如果养成了对自己写的代码进行单元测试的习惯,不但可以写出高质量的代码,而且还能提高编程水平。
Rx尝试解决从基于事件的UI异步访问数据的问题。...标准的迭代器模式以及它的基本接口IEnumerable和IEnumerator对于异步操作是不足够的,因此Rx通过引入观察者模式来解决这个问题,这个模式包含两个主要的接口,IObservable和IObserver...不是客户端一步一步地迭代数据集合,而是集合把数据作为异步调用的结果推送给客户端,终结了调用循环。...接下来我们运用Rx的UI事件订阅功能来实现在WPF/Silverlight中拖动元素的功能函数: 1 private void EnableDragging(FrameworkElement element...当然这只是Rx框架的一小部分,想要了解更多的内容请上官方开发者中心看看。
在silverlight beta 2 中已经支持了动态语言.但是在Visual Studio 和 Experssion Blend中还没有使用动态语言的模版.我们目前只可以手动建立. ok 开始吧~...:"有趣 不用js也能创建silverlight" 注意意中的source参数"app.xap".我们的文件中并没有这个文件.这是由SDK中的Chiron自动生成的.你存放sl代码的文件夹也必须叫这个名字..."app".其中动态代码的名字必须是app.比如"app.rb","app.xaml" 在根目录下建立app文件夹.再此目录下添加xml文件命名为app.xaml....在网站属性页中的启动选项选择"启动外部程序",选中sdk中的"Chiron.exe".命令行参数为"/b".工作目录设置为项目所在目录. ? 按F5运行程序 ? ?...显示"Hello World".这是xaml自己描述的. ok 介绍完毕. 下载地址 ?
Microsoft ASP.NET Futures May 2007,这是一个Future的好东西,包括了:ASP.NET AJAX Futures,Silverlight Controls for ASP.NET...今天尝试了一下Silverlight Controls for ASP.NET中的Xaml Control,Xaml Control是一个Asp.net AJAX扩展控件,使用这个控件就可以不需要引用silverlight.js...文件了,也不需要调用Sys.Silverlight.createObject或者Sys.Silverlight.createObjectEx的脚本了,就像Asp.net 服务端控件那样使用,开发很简单,...在下面内容之前建议你先看下面两篇文章: 更新Silverlight ctp到Silverlight beta 1.0 ASP.NET AJAX 控件开发基础 下面这个例子是对Silverlight1.0SDK...将Clock例子的js,xaml和assets文件夹拷贝到项目中,删除js目录下的silverlight.js文件 4、重构Clock.js代码如下: designerClock = function(