[请教StackPanel的布局问题]
Hi,我初学Silverlight,30天了吧。
问个问题:
<StackPanel Orientation="Vertical">
<!--TOP-->
<StackPanel Height="固定值">
</StackPanel>
<!-- Center -->
<StackPanel Height="How to write this height?">
</StackPanel>
<!-- Bottom -->
<StackPanel Height="固定值">
</StackPanel>
</StackPanel>
像这样的布局,我希望TOP能在浏览器的最上端,而Bottom能在最下端。他们都是固定高度。
而中间的这部分的Height怎么设置好,能实现这种上、中、下的布局。
1. 我知道,可以通过js传值,把整个客户群的高度传给Silverlight,然后减去上、下的高度来设置属性,
但是我初学,不知道有没有更好,更地道的方法。可以简单设置一下,就完成了这种功能,而不需要我再写很多C#代码。
谢谢。:)
[解决办法]
最外层用Grid吧,
<Grid x:Name="parentGrid">
<Grid.RowDefinitions>
<RowDefinition Height="30"></RowDefinition> //这里设固定值
<RowDefinition></RowDefinition> //这里自动伸展
<RowDefinition Height="30"></RowDefinition>
</Grid.RowDefinitions>
<!--Top-->
<StackPanel Background="Red" Grid.Row="0"/>
<!-- Center -->
<StackPanel Background="Green" Grid.Row="1"/>
<!-- Bottom -->
<StackPanel Background="Blue" Grid.Row="2"/>
</Grid>
你可看下效果
[解决办法]
楼主是C++高手来的。。。见过你~~~
你可以看一下Grid的用法和它的RowDefinition
[解决办法]
实现布局有很多种方法,其中GRID是最好用的,相当于HTML中的TABLE。 推荐使用Blend进行GRID的设置,Blend会按照你在视窗的设计,自动分配高度数值,并且是自动适应窗口缩放的。
另外也可以使用,DockPanel, 也是个很不错的选择。
关于Silverlight布局可以看看以下资料:
http://www.silverlightchina.net/html/tips/2009/1209/365.html
http://www.silverlightchina.net/html/learn/2010/0207/682.html