在使用Silverlight做与服务器交互生成的列表时,也许会遇到一个在WEB开发中没想到过的我问题,滚动条。
在IE中,IE会自动更具网页的大小来显示滚动条,所以曾经开发过WEB的开发员,从来不必为如何显示滚动条费心,通常我们还希望IE不自动显示滚动条,然而在开发SILVERLIGHT的时候,我们会发现,当你的内容已经超出Silverlight容器或控件大小的时候,并不现实出滚动条,你超出范围的内容将被隐藏起来。
对于普通的体验开发来说,也许你的内容完全被你控制,不会出现这样的情况,但是如果是生成的一个列表,列表的行数动态通过服务器获得,那么这将比较重要,甚至在使用TextBox这种在web中不需要考虑滚动问题的控件,在Silverlight中也不会自动的显示滚动条。
在SIlverlight中滚动条控件被独立成为一个容器,被命名为:ScrollViewer。具体说明可以在silverlight文档中查看
而其他容器控件如TextBox拥有 HorizontalScrollBarVisibility,VerticalScrollBarVisibility属性来控制是否开启滚动条功能
下面的小示例,显示了,如何让Silverlight文档显示滚动条,以及TextBox文本显示滚动条。
<UserControl xmlns:basics="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" x:Class="SilverlightTest.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400" Height="300" >
<ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible">
<Grid x:Name="LayoutRoot" Background="Black" >
<TextBox Margin="00,200,0,0" Text="A text box that demonstrates HorizontalScrollBarVisibility and VerticalScrollBarVisibility" Width="300" Height="100" AcceptsReturn="True" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible" />
</Grid>
</ScrollViewer>
</UserControl>
其中,TextBox的AcceptsReturn属性 是获取或设置一个值,该值确定文本框是否允许和显示换行符或回车符。
如果文本框允许换行符,则为 true;否则为 false。默认值为 false。(本人在Silverlight2中测试,似乎默认是True不知道是不是Silverlight文档中写错了)