在使用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文档中写错了)

 

 

 

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐