随笔分类 - Silverlight
摘要:1.从页面资源中获取样式并应用btnTest.Style=(Style)this.Resources["BigButtonStyle"]2.从项目中单独分开的资源字典文件(或一个引用的程序集中)中获取样式。首先,需要创建一个ResourceDictionary对象并提供正确的URI:ResourceDictionarydictionary=newResourceDictionary();dictionary.Source=newUri("/Test.xaml",UriKind.Relative);假设样式字典的名字叫Test.xaml,资源字典的编译格式
阅读全文
摘要:XML属性的值始终是一个字符串,但是对象的属性可以是任何.NET类型。因此XAML语法解析器需要执行一个转换。这个转换主要通过type converters完成,来自完整版.NET 框架的基础架构的一部分。 本质上,一个类型转换器在程序中主要有一个角色------它提供一个有用的方法,把指定的.NET数据类型转换为其他类型或者将其他类型转换为.NET的指定类型。XAML解析器按以下两个步骤找到类型转换器:1.它检查属性的声明,查找TypeConverter属性(如果存在,TypeConverter属性表示哪些类可以执行转换)。比如,当你Foreground属性时,.NET检查Foregroun
阅读全文
摘要:1.核心命名空间1.xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"是silverlight的核心命名空间,包含所有了的silverlight的核心类。比如usercontrol和grid等.通常此命名空间声明时没有加前缀,因此它成为了整个文档的的默认命名空间。换句话说就是页面所有的元素都默认的属于此命名空间,除非声明了其它的。2.xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 表示XAML的命名空间。此命名空间
阅读全文
摘要:最近在发布silverlight项目时,服务地址不是固定,因此服务需要动态创建。在网上搜了点资料找到了动态创建服务的方法,直接上代码 /// <summary> /// 根据服务类型创建服务 /// </summary> public static class CreateService { #region//动态创建服务 /// <summary> /// 动态创建基本服务 /// </summary> /// <typeparam name="serviceType">服务类型</typepar...
阅读全文
摘要:<script type="text/javascript"> function checkSl() { var isInstalled = false; try { try { var slControl = new ActiveXObject('AgControl.AgControl'); isInstalled = true; } catch (e) { if (na...
阅读全文
摘要:string os = Environment.OSVersion.Platform.ToString();//获取操作系统 string version = Environment.OSVersion.Version.ToString();//获取操作系统版本 string browserVersion = System.Windows.Browser.HtmlPage.BrowserInformation.BrowserVersion.ToString();//获取浏览器版本 string agent = System.Windows.Browser.HtmlPage.BrowserInf
阅读全文
摘要:看到葡萄城控件团队里边关于silverlight的布局控件的内部结构和Pro.Silverlight.4布局控件后收益匪浅,自己也顺手参考着例子写了个布局控件。控件类似于Grid,但有一个Count属性,表示一行可以放的控件数量。可以根据自己的需要改变这个属性,来确定一行的显示。代码 public class UniformPanel : Panel {//定义Count属性 public int Count { get { return (int)GetValue(CountProperty); } set { SetValue(CountProperty, value); } } publ
阅读全文
摘要:在上一篇中提到silverlight可以将一些程序集缓存。不过默认情况下,在silverlight中自定义的程序集不支持程序集缓存。但是,你可以通过满足两个条件而让它支持。首先,自定义程序集必须有一个强名称(strong name)。项目中需要用到一个叫做C的类库,如图为C创建强名称密钥,有以下几个步骤:1.右键单击C项目,选择属性2.点击签名选项卡3.选择为程序集签名选项4.在选择强名称密钥文件下来菜单中,选择新建选项弹出创建强名称密钥窗口弹出的窗口5.在弹出的窗口中输入文件名称(比如C,不一定非和程序集名称相同),密码可以选择也可以不选。6.点击确定,visual studio 会创建一个
阅读全文
摘要:silverlight中的程序集缓存可以将一些独立的程序集放在XAP包外边并可以缓存在客户端的浏览器中,这样就可以减少程序启动时下载XAP包的时间。默认情况下silverlight并没有开启程序集缓存,因此需要自己动手开启。 右键打开项目的属性,并在通过使用应用程库缓存较小XAP大小选项打钩,如图 在没选择此项之前编译项目看一下XAP中的DLL,如图 重新编译项目,选择显示所有文件然后打开Bin\Debug目录,会看到每一个缓存程序集都有自己的zip文件包。比如,如果使用了System.Windows.Controls.dll,会看到一个System.Windows.Controls.zip的
阅读全文
摘要:首先需要创建一个实体类界面代码 要想使用数据绑定,必须通过绑定表达式来设置目标属性。绑定表达式是一个标记语言,通常以Binding开头。创建表达式需要指明要绑定的数据源中的属性的名称。这个例子中需要绑定Product中的两个属性,需要用到的绑定表达式是{Binding ProductName}然后用它设置TextBox的Text属性。 绑定表达式只是指明了数据源中属性的名称,但它并不知道数据源。可以通过两种方式来设置数据源:通过设置元素的DataContext属性或者设置绑定的Source属性。 大多数情况下,最实用的方法是设置元素的DataContext属性。在上边例子中你可以设置每一个文本
阅读全文
摘要:silverlight支持在TextBox中用AcceptsReturn="True" 来换行,但是TextBlock不支持此属性,因此需要在显示在TextBlock上的文字做些改变。1.用"\n"换行效果2.用silverlight自带的类效果
阅读全文
摘要:1.在silverlight调用javascript函数 用System.Windows.Brower命名空间下的某些silverlight类,你可以调用一段脚本写的javascript函数。这样就给你的silverlight代码一个很有规律的方式来和页面交互。 比如:你在HTML页面中有下边一段javascript函数 function createText(message,user) { var el = document.getElementById("myElement"); el.innerHTML = user+" "+message; ..
阅读全文
摘要:大多数情况下,你不必担心访问你silverlight的浏览器。毕竟silverlight优势之一就是和不同的浏览器兼容,能让你的代码在每一个支持的环境下运行正常。但是一些情况下,你会选择仔细查看下浏览器--比如,在调试一个和浏览器相关的错误时。 BrowserInfomation类中提供的可用的浏览器信息相当丰富,包括浏览器名称,版本,操作系统和用户代理--一个包含浏览器的技术信息的字符串(比如,在IE里边,它列举了当前安装的.NET Framework版本)。你也可以用CookiesEnabled属性来决定当前浏览器是否支持cookie,是否启用cookie(假如支持cookie)。然后可.
阅读全文
摘要:silverlight包含了一些列可以模仿HTML中DOM的类,这些类可以让silverlight和在同一界面内的HTML元素交互。比如:读取一个控件的值,更新一个文本值或者向HTML页面中添加一个新的元素。这些类都在System.Windows.Brower命名空间下,下边有几个重要的类 HtmlPage HtmlPage代表了整个silverlight寄宿的HTML页面,是和HTML交互的起点。它提供了和HTML交互(Document属性),获取浏览器信息(BrowserInfo属性),和当前浏览器窗口交互(Windows属性)以及注册允许javascript调用的silverlight.
阅读全文
摘要:silverlight的System.Windows.Markup命名空间下,提供了XamlReader.Load()方法可以将字符串转换为控件。代码效果:注意:通过拼接字符串添加silverlight自带的控件时,务必加上命名空间字符串,否则会提示无法找到命名空间。如果添加的是第三方的控件,可不用添加上述字符串,但必须加上控件的命名空间。比如:添加一个第三方的按钮代码效果:
阅读全文
摘要:Silverlight中可以通过ScrollIntoView方法来定位具体的某一项。前台界面定义一个ListBox,一个TextBox和一个Button,在TextBox中输入数字,点击Button定位到TextBox中指定的位置。代码效果如果ListBox的数据源发生改变的时候,如添加或是删除一条数据,要先UpdateLayout,否则用ScrollIntoView不管用。在界面上添加一个按钮,...
阅读全文
摘要:这两天没事做了个Silverlight鼠标绘图的小程序,程序截图如下点击左边的图形选项按钮,可以画出不同的图形。代码如下首先需要在界面上放一个Canvas移动鼠标,分别向点集合中添加画直角三角形需要三个点
阅读全文
摘要:在园子里看到nasa兄的简便二维码QR图生成器(配合Google的提供的API),自己也尝试着做个玩玩。运行效果我在内容里边输入汉字时候,用我们这边的条码阅读器读不出来,有条件的朋友可以试试看能不能读出来。推荐个比较好的二维码,有条件的朋友可以使用Silverlight Barcode Professional文章源码下载
阅读全文
摘要:在Silverlight4中新增加了NotificationWindow特性,用来在windows右下角出现一个提示窗口。这两天刚好做项目的时候用到,就顺便写上来一个简单的Demo。代码效果:首先初始化一个NotificationWindow并指定它的宽和高,然后用content属性来指定窗口里边现实的内容,这里指定显示的内容为前边声明的TextBlock。用show方法显示出来,show的参数代...
阅读全文
摘要:代码StreamResourceInfo info = App.GetResourceStream(new Uri("SLAllControl;component/Border.xaml", UriKind.RelativeOrAbsolute)); StreamReader sr = new StreamReader(info.Stream); txtRead.Text=sr.ReadToEnd...
阅读全文
浙公网安备 33010602011771号