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,不解释。

动态加载dll

       Silverlight中支持应用程序缓存集的概念,不过那也是第一次全部加载到客户端的。在实际中我都是把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的过程中,贴出这些小的知识点,见者勿怪!

      农历新年前最后一篇随笔,祝各位新春愉快!

posted @ 2011-02-01 10:27  ringgo  阅读(718)  评论(1编辑  收藏  举报