Laden...

MouseWheel in ListView funktioniert nur, wenn Maus auf der Scrollbar ist

Erstellt von BJA-CH vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.320 Views
B
BJA-CH Themenstarter:in
59 Beiträge seit 2017
vor 6 Jahren
MouseWheel in ListView funktioniert nur, wenn Maus auf der Scrollbar ist

Salü zäme
Ich habe eine ListView in einem ScrollView eingebettet.
Was mir auffällt ist, dass das MouseWheel verhalten im ListView-Bereich nicht funktioniert. Lediglich wenn der Cursor auf der ScrollBar-Leiste steht, kann mit der MouseWheel gescrollt werden.


                            <ScrollViewer Grid.Column="1" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"
                                          CanContentScroll="True" Background="Transparent">
                                <ListView ItemsSource="{Binding Path=TelegrammListe, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                          BorderBrush="Black" BorderThickness="0.5"
                                          MinWidth="350">
                                    <ListView.View>
                                        <GridView>
                                            <GridView.Columns>
                                                <GridViewColumn Header="Telegramm" DisplayMemberBinding="{Binding Path=ZeileLesbar}"
                                                                Width="330"/>
                                            </GridView.Columns>
                                        </GridView>
                                    </ListView.View>
                                </ListView>
                            </ScrollViewer>

Weiss jemand, was ich machen muss, damit das MouseWheel-Ereignis auch auf der Fläche des ListViews Wirkung zeigt.

(Erstaunlich ist, verwende ich in ItemsControl an Stelle des ListViews, so funktioniert das MouseWheel-Ereignis auch auf der Fläche der Daten.)

D
985 Beiträge seit 2014
vor 6 Jahren

Na dann schau dir mal das hier an


<Window x:Class="WpfApp28.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp28"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Window.DataContext>
        <local:MainWindowViewModel/>
    </Window.DataContext>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>

        <ListView Grid.Column="0" ItemsSource="{Binding Items}">
        </ListView>

        <ItemsControl Grid.Column="1"  ItemsSource="{Binding Items}">
            
        </ItemsControl>
        
    </Grid>
</Window>


public class MainWindowViewModel
{
    public MainWindowViewModel()
    {
        Items = new ObservableCollection<int>(Enumerable.Range(1, 100));
    }

    public ObservableCollection<int> Items { get; }
}

Was fällt dir dabei auf?

B
BJA-CH Themenstarter:in
59 Beiträge seit 2017
vor 6 Jahren

Also den inneren ScrollViewer verwenden, dann funktioniert es bei einer ListView, das MousWheel funktioniert!!