Silverlight Scrollviewer,让孩子们充满了所有的空间

时间:2011-06-22 15:02:45

标签: silverlight xaml

我在网格视图中有一个滚动查看器,滚动查看器占据了屏幕的一定百分比。

在滚动查看器中,我有一个列表框,我在代码中添加项目。

问题是我无法让列表框占用父滚动查看器中的所有可用空间。

只是想知道这是否可能。

谢谢,

马特

编辑:

<Grid x:Name="LayoutRoot" Background="White" Margin="0,8,0,0"     Loaded="LayoutRoot_Loaded">
    <Grid.RowDefinitions>
        <RowDefinition Height="0.06*"/>
        <RowDefinition Height="0.06*" />
        <RowDefinition Height="0.88*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="0.155*"/>
        <ColumnDefinition Width="0.845*"/>
    </Grid.ColumnDefinitions>
  ...
   <ListBox x:Name="lstReportTypes" BorderBrush="Black" Margin="0" BorderThickness="0" Foreground="#FF737FE0" FontSize="10.667" Background="{x:Null}" SelectionChanged="lstReportTypes_SelectionChanged" Grid.Row="2" Grid.Column="1">
    <ListBoxItem Content="Item 1" Foreground="#FF737FE0" Background="Transparent" Cursor="Hand"/>
    <ListBoxItem Content="Item 2" Foreground="#FF737FE0" Background="Transparent" Cursor="Hand"/>
    <ListBoxItem Content="item 3dafasdfasdfasdfsdfasdfasdfasdf" Foreground="#FF737FE0" Background="Transparent" Cursor="Hand"/>
   </ListBox>

上面的代码是一小段代码,列表框显示在正确的位置并且宽度正确。 这些项目似乎并不占用所有父母的宽度,但它们都是剪辑。如果我选择其中一个项目,则所选轮廓的宽度正确。

希望这些额外信息有帮助

1 个答案:

答案 0 :(得分:1)

如果您打算在内部只有ScrollViewer,占用整个空间,则不需要ListBox。当ListBox内容超出可用空间时,ScrollViewer.HorizontalScrollBarVisibility="Hidden"已显示滚动条。

您可以单独控制使用ScrollViewer显示哪个滚动条。

如果您有更多元素ItemTemplate,请提供更多详细信息。

修改
你提供的XAML给了我这个结果(用粉红色的背景来显示列表框边界):

Silverlight sample capture

滚动整个列表框并剪切项目。这不是预期的效果吗?如果您希望每个列表框项目单独滚动,则需要指定自定义{{1}}。