首页 新闻 会员 周边 捐助

Silverlight中,如何根据系统的分辨率大小,而设置页面大小?

0
悬赏园豆:20 [已解决问题] 解决于 2012-08-07 22:58

现在做了一个网页,因为需要根据系统分辨率来固定Grid中图片的大小和显示的位置及布局,图片的大小是固定的,不能放大或者缩小。现在的办法是根据系统的分辨率来判断,如果是1024*768,就加载小分辨率布局的xap文件包。如果是1280*1024,就加载大分辨率布局的xap包。请问如何根据系统的分辨率来设计;或者有更好的办法,直接可以设置页面显示的大小,而不需要判断加载那个.xap包,那样更好。请大神们帮帮忙,谢谢!!!

@大龙哥的主页 @大龙哥 | 初学一级 | 园豆:183
提问于:2012-08-03 17:56
< >
分享
最佳答案
0

这个确实是一个问题,我们做的项目也遇到过分辨率不同导致的显示效果有较大区别。我们有些界面采用的方式是根据浏览器的大小来动态改变一个控件如DataGrid的宽度或高度值。可以通过这个页面的Grid 的Size_Changed 事件,在这个事件里面处理控件的宽度或高度,如

XAML:

<Grid x:Name="LayoutRoot"   SizeChanged="LayoutRoot_SizeChanged">

      <DataGrid x:Name="datagrid1" />

</Grid>

后台代码:

private void LayoutRoot_SizeChanged(object sender, SizeChangedEventArgs e)
{
     datagrid1.Width = ((Grid)sender).ActualWidth - 10;
}

仅供参考。

收获园豆:20
icyme | 初学一级 |园豆:77 | 2012-08-03 21:24

问题是里面的布局大小都要改变的,我放了几个Grid和StaticPanel,他们的大小都是固定的,现在要根据系统的分辨率大小,来设置。而且动画中的图片还有其他的,都会变化。基本上需要根据系统的分辨率,从新做一个。有没有其他好的办法,可以根据分辨率的大小进行设置。谢谢!!!

@大龙哥 | 园豆:183 (初学一级) | 2012-08-04 11:45

@License: "我放了几个Grid和StaticPanel,他们的大小都是固定的",这里推荐能不固定最好不要将Grid或StackPanel的宽度设定为一个固定值。如果楼主还没解决这个问题,你仍可以试试我上面给你的建议。很多个Grid和StackPanel 你可以分别给这些控件命名,然后在LayoutRoot_SizeChanged事件里面,设置这个命名后的每个控件的宽度即可。

icyme | 园豆:77 (初学一级) | 2012-08-06 20:09

@郭君忆: 好的谢谢!!!

@大龙哥 | 园豆:183 (初学一级) | 2012-08-07 22:55

@License: 兄弟,解决问题之后,通知一下额。

icyme | 园豆:77 (初学一级) | 2012-08-07 22:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册