如何实现居中的排版?
我的整个网页就是一个silverlight,
我是想实现这样一个排版的功能,
窗口的最外部是一个scrollviewer,
里面放一些控件,
scrollviewer的宽度和高度不限,这样可以保证重直滚动条一条显示在窗口的最右侧,
而scrollviewer里面用一个stackpanel存放所有的子控件,
我想使这个stackpanel满足以下几个要求:
stackpanel的最小宽度不限,最大宽度为1024,
(1)当scrollviewer宽度小于1024时,stackpanel的宽度和scrollviewer的宽度相同,即随着父控件的宽度变化而变化,
(2)当scrollviewer宽度大于1024时,stackpanel的宽度将固定为1024,直到父控件的宽度变的小于1024,以防止遇到超宽屏的显示器,
(3)当scrollviewer宽度大于1024时,stackpanel应在父控件中始终水平居中,
总之就是实现一个自动缩放的功能,该缩小时就缩小,但不能放大超过1024,且必须保证居中显示。
我试着设置stackpanel的最大宽度属性和水平居中属性,但这样的话stackpanel在小于1024时将不能随scrollviewer变化,
总感觉这几个属性相互影响,
感觉这功能挺简单,可试了好久也没整出来,还请指点一二。
[解决办法]
不知道是不是你想要的效果:
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="SilverlightApplication7.MainPage"> <Grid x:Name="LayoutRoot" Background="White"> <ScrollViewer Margin="0"> <StackPanel Background="#FF4E7A46" MaxWidth="1024"> <Rectangle Fill="#FFB12525" Stroke="Black" Height="100" Margin="0" Width="500"/> <Button Height="17" Content="测试1测试1测试1测试1测试1测试1测试1测试1测试1"/> <Button Height="17" Content="测试1测试1测试1测试1测试1测试1测试1测试1测试1"/> </StackPanel> </ScrollViewer> </Grid></UserControl>