强制滚动条出现在列表框中

时间:2012-02-24 09:20:40

标签: wpf

当我的内容不适合时,我可以强制滚动条出现在列表框中。我真的需要它。

要创建tabcontrol项目,我构建了这个xaml:

 <TabControl.ContentTemplate>

                        <DataTemplate>

                        <ScrollViewer VerticalScrollBarVisibility="Visible"
               HorizontalScrollBarVisibility="Visible">

                        <Grid Name="RssFeedContainerGrid" >
                            <Grid.RowDefinitions>
                                <RowDefinition Height="20" />
                                <RowDefinition Height="*" />
                            </Grid.RowDefinitions>

                            <controls:ucRssFeed Grid.Row="1" RssUri="{Binding FeedUri}" />

                        </Grid>

                        </ScrollViewer>
                    </DataTemplate>

                    </TabControl.ContentTemplate>

和ucRssFeed包含列表框。

这里有一些来自该控件的xaml我想要滚动的地方:

  <ListBox.ItemTemplate>

                    <DataTemplate>


                    <Grid Margin="10" x:Name="RssFeedCellblock">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="20" />
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="*" />
                    </Grid.RowDefinitions>



                        <StackPanel Orientation="Vertical" Margin="10" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="0"> 

                                <!-- Topic label-->
                                <TextBlock Cursor="Hand" FontWeight="Bold" Text="{Binding XPath=title}" Tag="{Binding XPath=link}" Foreground="{StaticResource RSS_Topic_Title}" MouseDown="TextBlock_MouseDown">

                                </TextBlock>
                                <!-- Breakline -->
                                <Line Stroke="{StaticResource RSS_Topic_Title}" Y1="5" Y2="5" X1="0" X2="{Binding ElementName=NewsListBox, Path=ActualWidth}" Opacity="0.7" StrokeThickness="1"/>
                                <!-- publication date label -->
                                <TextBlock  Text="{Binding XPath=pubDate}" Opacity="0.5" />
                                <!-- Description textblock -->
                                <TextBlock FontSize="10" FontFamily="Times New Roman"  x:Name="descriptionTextBlock" 
                                                Text="{Binding XPath=description, Converter={StaticResource HtmlToPlainTextConverter}}"  Margin="10" 
                                                TextWrapping="Wrap" />





                    </StackPanel> 

                      </Grid> 

                    </DataTemplate>

                </ListBox.ItemTemplate>

            </ListBox>

1 个答案:

答案 0 :(得分:0)

您需要设置ListBox的Height属性,以便Scrollbar显示列表框,当内容更多时,列表框会自动显示滚动条