The Stars ...My Destination

adamxx

天下事,法无定法,然后知非法法之
世间人,尤了未了,何妨以不了了之

导航

根据浏览器的大小,自动调整Silverlight的大小

Posted on 2008-01-10 10:49  adamxx  阅读(3558)  评论(4编辑  收藏  举报

根据浏览器的大小,自动调整Silverlight的大小

在Page_Load方法中添加

BrowserHost.Resize += new EventHandler(BrowserHost_Resize);

Resize事件处理:

void BrowserHost_Resize(object sender, EventArgs e) {
            
double xscale = BrowserHost.ActualWidth / this.Width;
            
double yscale = BrowserHost.ActualHeight / this.Height;
            ScaleTransform scale 
= new ScaleTransform();
            scale.ScaleX 
= xscale ;
            scale.ScaleY 
= yscale ;
            RenderTransform 
= scale;
        }

将silverlightHost的height与width成100%, 好让 Silverlight control 随着 html 自动缩放
修改createSilverlight中的properties: width:"100%",height:"100%"

该代码在IE7下测试成功,可以点击这里下载演示

对于Firefox:
删除 , 之前的 <!DOCTYPE ...>。 如果不删 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">, 虽然在IE上不会有问题,但在Firefox上则无法正常运行,因为Firefox遇到<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional">时,HTML的大小会有不同的解释