当浏览器里只有一个Silverlight,没有其他内容时,我们会希望它能够自适应浏览器大小(屏幕大小),flash在解决这个问题时很为难,而用Silverlight则可以轻松解决自适应大小的问题。

首先,在你的HTML页面中,修改这一行CSS代码:

.silverlightHost { width: 640px; height: 480px; }

改为:

.silverlightHost { width: 100%; height: 100%; }

那么,你现在的Silverlight就是自适应大小的了,但是还有很多问题要解决的,比如你的背景图片大小也得跟着改变了,还有元件布局也得跟着变……因为现在Silverlight还不能像WPF那样自动布局,只能指定绝对位置。不过还好,当Silverlight大小发生变化的时候存在BrowserHost.Resize这样一个事件,我们为这个事件写一个EventHandler就好了,而当前Silverlight的尺寸大小则可以通过BrowserHost.ActualWidth和BrowserHost.ActualHeight来获取,那么手动布局也就还算方便了,不过要是能使用相对位置自动布局就更方便了,不知道Silverlight 1.1以后是不是会增加这个功能。

3 Comments

  1. 在silverlight2.0 bata2中怎么用!请多指教一下

  2. 如果用js插入方式的话,还要改js里面的width和height分别为100%,使用object方式插入的话,改对应的width和height貌似就可以了,至于Silverlight里面的元素的布局则需要监听Resize事件来进行调整~

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.