Silverlight Tips(3)
这个系列,主要是将自己平时遇到的或者从网上看到的小知识整理下,好记性不如烂笔头,这样方便日后再碰到这些问题方便查看。
Silverlight插件居中显示
网上有很多方式,Silverlight插件是通过<object/>进行声明的,那么这里就用到CSS的概念了,直接对div的样式设置即可
<div style="margin:auto,width:200,height=200"><object data="data:application/x-silverlight-2,"type="application/x-silverlight-2" width="200" height="200"/>...</div>
这是我在实际运用中处理的方式,涉及到Css,不解释。
动态加载dllSilverlight中支持应用程序缓存集的概念,不过那也是第一次全部加载到客户端的。在实际中我都是把Silverlight部分分拆成类库形式,这样至少
用户初次能很快的看到界面,一个应用程序要等10s以上,我估计只有懂Silverlight的人士才能理解。
分拆成类库形式后,不要直接引用该类库而改为按需加载,一个典型的场景就是SDK中关于AssemblyPart类的示例,这种例子网上都快写烂了。
我这里是将dll压缩成zip文件进行加载的,也是根据网上的示例改的,就不贴代码了,可以下源码看。
下载地址:DynamicLoadAssemblyExample
获取当前应用程序实例在Silverlight中通过Application类封装应用程序,我们建立一个项目的时候,都是从Application类继承而来,默认为App,当程序运行的时候可以通过Current这
一属性取得当前的应用程序。
Application application = Application.Current;
实际情况是这样的,Current是继承的Application基类,所以上面的代码并非返回派生的实例,而是返回对基类对象的引用,如果要获得派生的实例,则要转化一下
App application =(App) Application.Current;
这是之前在SDK上看到的,不过就目前为止,除了上述区别,利用Current.Host在获取插件信息的时候,我并没真正察觉到上面2种写法会有何差异。
TextBlock显示””这个是个很常见的需求,一段文字中若包含“”,通过正常的XAML是不好显示的,很简单,将Text属性值的首尾换成‘’即可
<TextBlock Text='"数据读取中"' />
TargetNullValue属性
在Sl4中对绑定增强了多种支持,比如前面提到的StringFormat,FallbackValue属性,在3.0中对绑定的数据源的值为Null时,通常需要用Converter进行处理,
TargetNullValue属性可以对绑定的数据值为Null时进行处理。
<TextBlock Text="{Binding Value,TargetNullValue=0}"/>
因为最近开始接触SL4,所以有些在SL3中比较麻烦的处理在4中都可以很简单的实现。因此也在接触SL4的过程中,贴出这些小的知识点,见者勿怪!
农历新年前最后一篇随笔,祝各位新春愉快!