上一篇"base64编码在silverlight中的使用"里已经提到WriteableBitmap对象可以借助FluxJpeg转化为base64字符串,而WriteableBitmap又能从BitmapSource...问题解决了 先将BitmapImage转化为WriteableBitmap,然后得到base64字符串,然后可以得到base64的byte[]数组,再然后您可以把byte[]变成Stream 关键代码:...WriteableBitmap wb = new WriteableBitmap(img.Source as BitmapSource);//将Image对象转换为WriteableBitmap byte...[] b = Convert.FromBase64String(GetBase64Image(wb));//得到byte数组 将byte[]还原为图片: 1 byte[] b = ......//这里的b为上面生成的base64编码的byte数组 2 MemoryStream ms = new MemoryStream(b); 3 BitmapImage bitImage = new BitmapImage
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 参数进行配置。...maxframerate 参数的默认值为 60。currentFramerate 和 maxFramerate 是报告每秒帧数 (fps) 的值。实际显示的帧速率设置为较低的数字。...即sl每秒种默认最多播放60帧,当然我们也能用代码来改变该值(比如设置到100),但最终sl的当前播放速度与硬件有关,并不是你想设多高就能达到多高。
最近又用silverlight做了一个小的东西,如图: 主要就是下边的导航,点击了后上边的大图和文字简介都跟着做相应的变化。...界面设计的思路:整个silverlight采用Grid布局,分为四个层,由下至上分别为:背景层、导航层、简介层、rss按钮层。...导航部分用了“Silverlight Contrib”这个控件库中的“CoolMenu”控件。其自带的demo中是直接把各个Item写好在xaml中。...这里我是需要从我的配置文件中读取数据后在加载到导航中。..., 1为要读取的文件在在xap中的路径。
首先要了解的概念是 Java 中用补码表示二进制数,补码的最高位代表符号位,最高位是 1 则表示为正数,最高位是 0 则表示为负数。 正数的补码是本身,负数的补码其绝对值的二进制位按位取反后 +1。...即表示 -60 的二进制表现形式 1100 0100。 回到正题,那么 byte 表示一个字节,一个字节是 8 位,最高位是符号位。...那么 8 位能表示的最大值就是 0111 1111,换算成十进制就是 127。...最小的负数就是1000 0000,(最大的负数是 1111 1111 是负数-1的补码),换算成十进制就是 -128, 1000 0000 是最小负数的补码表示形式,我们把补码计算步骤倒过来就即可。...1000 0000 减 1 得 0111 1111 然后取反 1000 0000 因为负数的补码是其绝对值取反,即 1000 0000 为最小负数的绝对值,而 1000 0000 的十进制表示是 128
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 Load Client Image 加载客户端图片 这里做了一个用Silverlight加载客户端图片的例子。并且用了一个最简单的数据双向绑定。...beginning 这里例子的代码很简单不用做太多的说明。..._imageSource = new BitmapImage(); public BitmapImage ImageSource { get { return...result.HasValue || result.Value == false) return; BitmapImage imageSource...”的命名空间:System.Windows.Media.Imaging; Source http://cid-3e15d91acc4385a8.skydrive.live.com/embedrowdetail.aspx
在传统的.net应用中,使用base64编码字符串是一件很轻松的事情,比如下面这段代码演示了如何将本地文件转化为base64字符串,并且将base64字符串又还原为图片文件. base64编码在传统.net...程序中的应用(by 菩提树下的杨过 ) using System; using System.Drawing; using System.Drawing.Imaging; using System.IO...; namespace Base64Study { /// /// base64编码在传统.net程序中的应用(by 菩提树下的杨过 http://yjmyzz.cnblogs.com...MemoryStream(b); Bitmap bitmap = new Bitmap(ms); return bitmap; } } } 但是到了silverlight...环境中,这种简单的操作方式却无法使用了,幸好网上有一个开源的免费组件FluxJpeg,同时国外有高人已经利用该组件写出了将位图转化为base64的方法,这里我们借用一下即可: 代码 <UserControl
现在很多的需求中需要一个插件实例和另一个实例进行通讯。在同一个页面中调用Html、js等来通讯,而这个往往有一些限制,需要专门的去设置一些权限。...在Silverlight 3.0 中新增了一个功能使得跨越实例的通讯变得极为的简单,这个功能为本地连接。 通过本地连接就也可以在不同页面间多个Silverlight实例创建通讯通道。...这样就可以创建多个基于Silverlight的应用程序或者基于其他技术的内容在一起的复杂布局。...,但是只接收来自指定发送器域的消息。...-3-using-local-connections http://www.wintellect.com/CS/blogs/jprosise/archive/2009/03/26/silverlight
Silverlight控件 - Carrousel 简介: Carrousel是一个布局控件,可对其内部的子控件排出像《旋转木马》一样的效果。...项目地址:http://carrousel.codeplex.com/源文件中包括控件项目、事例项目和一个Web宿主项目。...下载了文件后在Silverlight项目中添加引用。 ...bi = new BitmapImage(); bi.SetSource(sri.Stream); Image img = new...写的比较简单,对SilverlightCairngorm 感兴趣的朋友可以看下。 演示地址:http://www.grmcac.com/silverlight/lab/Carrousel/
序列化简言之是这样一种能力:能够把复杂的对象(Object)变成某种格式的字符串(常见的格式有xml,string,二进制文件等),这样可以方便的在各种系统中传输或交换(比喻socket编程中的数据包只能用...byte[]传输),接收方得到该字符串后,通过反序列化可以还原为复杂对象,进而调用对象的方法或属性 -- 跟反射有点沾边:) 这里先给出一个WinForm的序列化例子,功能为通过打开文件对话框选择一个文件后...[] Body { set; get; } 121 122 } 123 } 不过在Silverlight中,传统的序列化方式有很多被精减掉了(比如BinaryFormatter之类),唯一得以保存的只剩下...System.Xml.Serialization,所以SL中只能通过xml来序列化对象(虽然xml序列化后的字节数相对Binary有点大,不过我们也别无选择),另外有一点很让人不习惯的是,需要序列化的自定义类中...(这一点让我郁闷了好久,还为此在网上疯狂的百度,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/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中命名控件的原因。
这二天在研究webabcd的socket多人聊天室,想尝试增加一些功能,比如:允许用户除发送文字外,还能发送图片或文件。...问题: socket发送数据时,只能发送byte[]数组,且无法附带其它用户自定义参数,服务端如何知道用户发过来的是文字还是图片或是文件呢,所以只能在byte数组上动脑筋了. silverlight中,...用户选择的图片或文件,都能变成FileStream,近而变成byte数组,初步想法是在数组前后加一些标记之类,比如最开始几个字节是"img,txt,file"中对应的一个,这样服务端接收到以后,通过拆解分析就能知道用户发过来的何种格式...[] b = UTF32Encoding.UTF8.GetBytes(msg);//模拟接收到的byte数组 int _i1 = -1, _i2 = -1, _i3 = -1, _i4 = -1;/.../用来记录分隔字符“^”出现的四次位置 for (int i = 0; i < b.Length; i++) { if (b[i] == (byte)'^')
DependencyObject Binding 在Silverlight之前的版本中,其支持的元素绑定只是允许绑定继承自FrameworkElement类下元素,但是比如一些形变比如Transformations..."1" VerticalAlignment="Top" /> ================================= String Formatting 新版的Silverlight4...中新增加了格式化字符串的能力。...现在可以使用扩展标记StringFormat来做一些比如日期、货币等的格式化。 在VS2010中也提供了可视化的支持。...,现在的CollectionViewSource支持数据到GroupDescriptions的绑定,这样可以更加轻松的在XAML做分组。
Java中为什么byte的范围是 -128~127 在java中byte类型占8位 表示的范围是0000 0000 ~ 1111 1111 总共256个数, java中byte类型有正负,最高位表示正负...我们先看正数: 0000 0000 ~ 0111 1111(原码)( 0 ~ 127,共128个数)我们知道在计算机系统中,数值一律用补码来表示和存储。...正数的原码,反码,补码均相同,所以在计算机补码中,表示的范围还是0~127 再看负数: 1000 0000 ~ 1111 1111(原码)(-0 ~ -127 也是128个数)我们先不看-0,我们先看...,其余位取反) 1111 1111 ~ 1000 0001(补码)(补码是在反码的值上最后一位加1)所以在计算机中1111 1111 ~ 1000 0001(补码)表示的范围是也是 -1 ~ -127...(这里说没有对应的原码和反码是相对于8个bit的情况下,可以求出原码和反码但超出8个bit所能表达范围) 在计算机系统中,数值一律用补码来表示和存储。
Silverlight类库介绍-FJCore FJCore是一个图片编码类库(目前只有对JPEG格式的支持)。...JpegEncoder(jpegOut, 90, outStream).Encode(); // Display outStream.Seek(0, SeekOrigin.Begin); BitmapImage...image = new BitmapImage(); image.SetSource(outStream); OutputImage.Source = image; }
对于ItemsPanelTemplate中的命名控件,比如下面这样的: 如果想在listItem_MouseLeftButtonDown中引用...sp,按正统处理方法还真是比较麻烦(各位可以google,baidu印证),这里给出一个很取巧的办法: 然后在后端代码中,添加一个私有变量,并处理... _sp = sender as StackPanel; } 这样,在listItem_MouseLeftButtonDown中就能借助"_sp"正确引用到ItemsPanelTemplate中的
查询之后,发现原来Java中是没有unsigned byte type的。也就是说Java中所有的byte类型都是signed类型。...Java中unsigned byte 的转换 正如上述我们看到的代码所示: int luminance = row[x] & 0xFF; 首先widening类型。...在signed byte类型中,代表-1;但在short或者int类型中则代表255....当把byte类型的-1赋值到short或者int类型时,虽然值仍然代表-1,但却由1111 1111变成1111 1111 1111 1111....而这种转换是比较简单的,首先将其扩大类型到short或者int,然后对0xff进行掩码即可。 备注 2016.7.5阅读zxing源码时的小问题