Не работает скролл в ListView

276
09 декабря 2016, 08:47

В моем ListView с кнопками по непонятной мне причине, не хочет работать скролл
Вот Listview

<ListView  RelativePanel.Below="Sep" RelativePanel.AlignLeftWithPanel="True" RelativePanel.AlignRightWithPanel="True" RelativePanel.AlignBottomWithPanel="True" ScrollViewer.VerticalScrollMode="Enabled" ScrollViewer.VerticalScrollBarVisibility="Hidden" SelectionMode="Single" 
                     SelectionChanged="ListBox_SelectionChanged" BorderBrush="White" Foreground="Black" Background="{x:Null}" >
                            <ListViewItem Name="Web" ManipulationMode="TranslateX"
                  ManipulationCompleted="SplitViewPane_ManipulationCompleted">
                                <StackPanel Orientation="Horizontal">
                                    <Image Name="im2" Source="Resource/Site.png" Height="26" Width="26" />
                                    <TextBlock Name="tx2" FontSize="16" Margin="15,0,0,0">Панель 2</TextBlock>
                                </StackPanel>
                            </ListViewItem>
                            <ListViewItem Visibility="Collapsed" Name="News" ManipulationMode="TranslateX"
                  ManipulationCompleted="SplitViewPane_ManipulationCompleted">
                                <StackPanel Orientation="Horizontal">
                                    <Image Name="im3" Source="Resource/News.png" Height="26" Width="26" />
                                    <TextBlock Name="tx3" FontSize="16" Margin="15,0,0,0">Панель 3</TextBlock>
                               </StackPanel> </ListViewItem> </ListView>

Подскажите, в чем может быть беда? (подозреваю, что это из за кнопок)

UPD Если тяну за часть где нет кнопок, скролл работает

А если за кнопки то игнорирует

Answer 1

Предполагаю, что ListView находится в StackPanel или в строке грида с Height="auto". Поместите его в строку грида с размером Height="*".

UPD: Вот такой каркас должен быть.

<ListView
    ItemTemplate="ListViewWithButtonsItemTemplate"
    ItemsSource="{Binding MenuItems}"/>
<DataTemplate
    x:Name="ListViewWithButtonsItemTemplate">
    <Grid>
    <Grid.ColumnDefinitions>
    <ColumnDefinition Width="auto"/>
    <ColumnDefinition/>
    </Grid.ColumnDefinitions>
        <FontIcon 
            Grid.Column="0"
            Glyph="{Binding Image}"/>
        <TextBlock
            Grid.Column="1"
            Text="{Binding Title}"/>
    </Grid>
</DataTemplate>
Answer 2

Могу предположить, что не хватает контрола ScrollViewer вокруг листа

<ScrollViewer>
<ListView  RelativePanel.Below="Sep" RelativePanel.AlignLeftWithPanel="True" RelativePanel.AlignRightWithPanel="True" RelativePanel.AlignBottomWithPanel="True" ScrollViewer.VerticalScrollMode="Enabled" ScrollViewer.VerticalScrollBarVisibility="Hidden" SelectionMode="Single" 
                     SelectionChanged="ListBox_SelectionChanged" BorderBrush="White" Foreground="Black" Background="{x:Null}" >
                            <ListViewItem Name="Web" ManipulationMode="TranslateX"
                  ManipulationCompleted="SplitViewPane_ManipulationCompleted">
                                <StackPanel Orientation="Horizontal">
                                    <Image Name="im2" Source="Resource/Site.png" Height="26" Width="26" />
                                    <TextBlock Name="tx2" FontSize="16" Margin="15,0,0,0">Панель 2</TextBlock>
                                </StackPanel>
                            </ListViewItem>
                            <ListViewItem Visibility="Collapsed" Name="News" ManipulationMode="TranslateX"
                  ManipulationCompleted="SplitViewPane_ManipulationCompleted">
                                <StackPanel Orientation="Horizontal">
                                    <Image Name="im3" Source="Resource/News.png" Height="26" Width="26" />
                                    <TextBlock Name="tx3" FontSize="16" Margin="15,0,0,0">Панель 3</TextBlock>
                               </StackPanel> </ListViewItem> </ListView>
</ScrollViewer>

Лист сам по себе не содержит в себе ScrollViewer

READ ALSO
Как правильно представить if-else- блок в Unit Test?

Как правильно представить if-else- блок в Unit Test?

ЗдравствуйтеЯ хочу с помощью Unit Test проверить, или моя функция правильно работает и не знаю как заменить блок if-else?

241
TwoWay Binding не работает через DependencyProperty

TwoWay Binding не работает через DependencyProperty

При изменении свойства через TwoWay binding не производится работа с переменной, только со свойством зависимости

244
Хочу отображать блокнот на Локскрине Windows 10

Хочу отображать блокнот на Локскрине Windows 10

Хочу, чтобы на локскрине (экране блокировки) отображался блокнотикКод обваливается на этой строчке:

212
Перебор всех control в winforms

Перебор всех control в winforms

Мне в цикле надо перебрать абсолютно все control'ы в форме (в том числе и их дети)С пом

252