如何实现居中的排版?

ck436 2010-04-15 04:32:00
我的整个网页就是一个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变化,
总感觉这几个属性相互影响,
感觉这功能挺简单,可试了好久也没整出来,还请指点一二。

...全文
199 4 打赏 收藏 转发到动态 举报
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ck436 2010-04-15
  • 打赏
  • 举报
回复
还真实现了,想不到这么简单的功能我都不能实现,惭愧啊,还想用居中等属性
谢谢了
pojianbing 2010-04-15
  • 打赏
  • 举报
回复
不知道是不是你想要的效果:


<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>
ck436 2010-04-15
  • 打赏
  • 举报
回复
太阳啊,我还以为有人回答了呢/

8,705

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告