技术开发 频道

不用GIF图片 Silverlight的15件趣事

    【IT168 专稿】我喜欢Silverlight,我写过很多关于Silverlight的文章,也在不同场合做过关于Silverlight的演讲,但很多人对Silverlight仍然很陌生,或仅仅是将它作为一个玩具,如果你刚好属于这一类人,那么你应该继续往下读,本文列举的内容是我开始用Silverlight做开发以来收集起来的,如果你打算做一名全职的Silverlight开发人员,那更应该将这些内容熟记于心,放心,我不会用MVVM,Prism或MEF来吓你。

  1、下图中高亮显示的代码行表示的是MIME类型,而不是Silverlight的运行时版本号,许多开发人员一开始都会很困惑,因为按照惯例,他们认为这应该是Silverlight的版本号,如Silverlight 4。

1

  图 1 一个Silverlight托管应用的HTML/ASPX标记

  2、不能在Silverlight中使用.GIF图片,如果你要在Silverlight应用程序中插入图片,最好使用.PNG文件,如果你非要使用.GIF文件,建议你使用.NET图像工具库Silverlight版本,也有很多人构建了Web服务,将.GIF文件转换成.PNG文件,我个人建议你还是使用诸如Paint.NET等工具将图片转换成.PNG格式。

1

  图 2 Silverlight不接受.GIF图片

  3、如果用户没有安装Silverlight 4插件,可以在HTML或ASPX文件中使用下图高亮显示的代码提醒用户去下载。

1

  图 3 在HTML或ASPX代码中插入Silverlight下载链接

  如果你将链接修改为:

<a href="http://go.microsoft.com/fwlink/?LinkID=149156" style="text-decoration: none;">
    
<img src="http://go.microsoft.com/fwlink/?LinkID=161376" alt="Get Microsoft Silverlight" style="border-style: none"/>
</a>

 

  用户将总是会下载到Silverlight运行时的最新版本,新版本会向后兼容旧版本。

  4、Silverlight中所有数据访问都是异步的,下面的代码将不会工作:

MyOldWebService srv = new MyOldWebService();
string strReturn = srv.GetSomeValue();
txtValue.Text
= strReturn;

 

  下面是在Silverlight中调用WCF服务的正确做法:

public MainPage()
{
    InitializeComponent();
    Service1Client client
= new Service1Client();
    client.DoWorkCompleted
+= new EventHandler<DoWorkCompletedEventArgs>(client_DoWorkCompleted);
    client.DoWorkAsync();
}

void client_DoWorkCompleted(
object sender, DoWorkCompletedEventArgs e)
{
    MessageBox.Show(e.Result);
}

 

0
相关文章