3

So as the question suggests, I'm having trouble getting a scrollbar to show up for my listView. Replacing the StackPanel with a Grid works, but the problem is the two listviews I have in the tab control are then stacked on top of both each other and the label I have. Suggestions?

<DockPanel VerticalAlignment="Bottom" HorizontalAlignment="Stretch" Height="422" Width="780" Margin="200,0,0,0" Background="#FF89BBF7">
    <TabControl VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="20,0,0,0" Background="#FF89BBF7">
        <TabItem Header="Active Calls">
            <TabItem.Background>
                <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                    <GradientStop Color="#FFF3F3F3" Offset="0"/>
                    <GradientStop Color="#FFEBEBEB" Offset="0.5"/>
                    <GradientStop Color="#FFDDDDDD" Offset="0.5"/>
                    <GradientStop Color="#FF89BBF7" Offset="1"/>
                </LinearGradientBrush>
            </TabItem.Background>
            <Grid Background="#FF89BBF7" HorizontalAlignment="Stretch">
                <StackPanel>
                <ListView Name="lvwCalls"  HorizontalAlignment="Stretch" VerticalAlignment="Top" Height="Auto" Margin="10,10,10,40" >
                        <ListView.View>
                            <GridView>
                                <GridViewColumn Header="Priority" Width="50" DisplayMemberBinding="{Binding priority}" />
                                <GridViewColumn Header="Call Status" Width="60" DisplayMemberBinding="{Binding callStatus}" />
                                <GridViewColumn Header="Call Type" Width="60" DisplayMemberBinding="{Binding callType}" />
                                <GridViewColumn Header="Dispatched Persons" Width="120" DisplayMemberBinding="{Binding dispatchedPersons}" />
                                <GridViewColumn Header="Region" Width="50" DisplayMemberBinding="{Binding region}" />
                                <GridViewColumn Header="Location" Width="80" DisplayMemberBinding="{Binding location}"/>
                                <GridViewColumn Header="Specific Location" Width="100" DisplayMemberBinding="{Binding specLocation}" />
                                <GridViewColumn Header="Time" Width="50" DisplayMemberBinding="{Binding time}" />
                                <GridViewColumn Header="Dispatch #" Width="60" DisplayMemberBinding="{Binding dispatchNumber}" />
                                <GridViewColumn Header="Address" Width="60" DisplayMemberBinding="{Binding address}" />
                            </GridView>
                        </ListView.View>
                    </ListView>
                    <Label Content="Pending Calls:"/>
                    <ListView HorizontalAlignment="Stretch" VerticalAlignment="Top" Height="Auto" Margin="10,10,10,50" >
                        <ListView.View>
                            <GridView>
                                <GridViewColumn Header="Priority" Width="120" DisplayMemberBinding="{Binding Priority}" />
                                <GridViewColumn Header="Call Type" Width="120" DisplayMemberBinding="{Binding CallType}" />
                                <GridViewColumn Header="Location" Width="150" DisplayMemberBinding="{Binding Location}" />
                                <GridViewColumn Header="Specific Location" Width="100" DisplayMemberBinding="{Binding SpecLocation}" />
                                <GridViewColumn Header="Time" Width="100" DisplayMemberBinding="{Binding Time}" />
                                <GridViewColumn Header="Dispatch #" Width="100" DisplayMemberBinding="{Binding DispatchNumber}" />
                            </GridView>
                        </ListView.View>
                    </ListView>
                </StackPanel>
            </Grid>
        </TabItem>
        <TabItem Header="History">
            <Grid Background="#FF89BBF7">
                <StackPanel>
                    <ListView HorizontalAlignment="Stretch" VerticalAlignment="Top" Height="Auto" Margin="10,10,10,20" >
                        <ListView.View>
                            <GridView>
                                <GridViewColumn Header="Call Time" Width="70" DisplayMemberBinding="{Binding CallTime}" />
                                <GridViewColumn Header="Location" Width="80" DisplayMemberBinding="{Binding Location}" />
                                <GridViewColumn Header="Specific Location" Width="100" DisplayMemberBinding="{Binding SpecLocation}" />
                                <GridViewColumn Header="Dispatch Number" Width="120" DisplayMemberBinding="{Binding DispatchNumber}" />
                                <GridViewColumn Header="Description" Width="80" DisplayMemberBinding="{Binding Description}" />
                                <GridViewColumn Header="Report Number" Width="100" DisplayMemberBinding="{Binding ReportNumber}" />
                                <GridViewColumn Header="Group" Width="60" DisplayMemberBinding="{Binding Group}" />
                                <GridViewColumn Header="Address" Width="80" DisplayMemberBinding="{Binding Address}" />
                            </GridView>
                        </ListView.View>
                    </ListView>
                </StackPanel>
            </Grid>
        </TabItem>
    </TabControl>

</DockPanel>
imsome1
  • 1,182
  • 4
  • 22
  • 37
  • Replace the StackPanel with a Grid with x number of RowDefinitons. – mm8 Oct 17 '17 at 09:51
  • StackPanel allows infinite space for children elements. Grid works differently and you can create multiple `RowDefinition` for multiple nested controls – ASh Oct 17 '17 at 09:51

1 Answers1

6

Replace the StackPanel(s) with a Grid with several RowDefinitons:

<TabControl VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="20,0,0,0" Background="#FF89BBF7">
    <TabItem Header="Active Calls">
        <TabItem.Background>
            <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                <GradientStop Color="#FFF3F3F3" Offset="0"/>
                <GradientStop Color="#FFEBEBEB" Offset="0.5"/>
                <GradientStop Color="#FFDDDDDD" Offset="0.5"/>
                <GradientStop Color="#FF89BBF7" Offset="1"/>
            </LinearGradientBrush>
        </TabItem.Background>
        <Grid Background="#FF89BBF7" HorizontalAlignment="Stretch">
            <Grid.RowDefinitions>
                <RowDefinition Height="*" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
            <ListView Name="lvwCalls"  HorizontalAlignment="Stretch" VerticalAlignment="Top" Height="Auto" Margin="10,10,10,40" >
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="Priority" Width="50" DisplayMemberBinding="{Binding priority}" />
                        <GridViewColumn Header="Call Status" Width="60" DisplayMemberBinding="{Binding callStatus}" />
                        <GridViewColumn Header="Call Type" Width="60" DisplayMemberBinding="{Binding callType}" />
                        <GridViewColumn Header="Dispatched Persons" Width="120" DisplayMemberBinding="{Binding dispatchedPersons}" />
                        <GridViewColumn Header="Region" Width="50" DisplayMemberBinding="{Binding region}" />
                        <GridViewColumn Header="Location" Width="80" DisplayMemberBinding="{Binding location}"/>
                        <GridViewColumn Header="Specific Location" Width="100" DisplayMemberBinding="{Binding specLocation}" />
                        <GridViewColumn Header="Time" Width="50" DisplayMemberBinding="{Binding time}" />
                        <GridViewColumn Header="Dispatch #" Width="60" DisplayMemberBinding="{Binding dispatchNumber}" />
                        <GridViewColumn Header="Address" Width="60" DisplayMemberBinding="{Binding address}" />
                    </GridView>
                </ListView.View>
            </ListView>
            <Label Content="Pending Calls:" Grid.Row="1"/>
            <ListView HorizontalAlignment="Stretch" VerticalAlignment="Top" Height="Auto" Margin="10,10,10,50" Grid.Row="2">
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="Priority" Width="120" DisplayMemberBinding="{Binding Priority}" />
                        <GridViewColumn Header="Call Type" Width="120" DisplayMemberBinding="{Binding CallType}" />
                        <GridViewColumn Header="Location" Width="150" DisplayMemberBinding="{Binding Location}" />
                        <GridViewColumn Header="Specific Location" Width="100" DisplayMemberBinding="{Binding SpecLocation}" />
                        <GridViewColumn Header="Time" Width="100" DisplayMemberBinding="{Binding Time}" />
                        <GridViewColumn Header="Dispatch #" Width="100" DisplayMemberBinding="{Binding DispatchNumber}" />
                    </GridView>
                </ListView.View>
            </ListView>
        </Grid>
    </TabItem>
    <TabItem Header="History">
        <Grid Background="#FF89BBF7">
            <ListView HorizontalAlignment="Stretch" VerticalAlignment="Top" Height="Auto" Margin="10,10,10,20" >
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="Call Time" Width="70" DisplayMemberBinding="{Binding CallTime}" />
                        <GridViewColumn Header="Location" Width="80" DisplayMemberBinding="{Binding Location}" />
                        <GridViewColumn Header="Specific Location" Width="100" DisplayMemberBinding="{Binding SpecLocation}" />
                        <GridViewColumn Header="Dispatch Number" Width="120" DisplayMemberBinding="{Binding DispatchNumber}" />
                        <GridViewColumn Header="Description" Width="80" DisplayMemberBinding="{Binding Description}" />
                        <GridViewColumn Header="Report Number" Width="100" DisplayMemberBinding="{Binding ReportNumber}" />
                        <GridViewColumn Header="Group" Width="60" DisplayMemberBinding="{Binding Group}" />
                        <GridViewColumn Header="Address" Width="80" DisplayMemberBinding="{Binding Address}" />
                    </GridView>
                </ListView.View>
            </ListView>
        </Grid>
    </TabItem>
</TabControl>

ScrollViewers and StackPanels don't work well together:

Horizontal scroll for stackpanel doesn't work

mm8
  • 163,881
  • 10
  • 57
  • 88