Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PointerWheelChanged Event UWP

Tags:

c#

uwp

I have a GridView with enabled VerticalScroll. In MainPage.xaml.cs I intercepted the ScrollView's PointerWheelChanged Event.

In this PointerWheelChanged event, can you know whether the wheel scrolls up or down?

The code.

MainPage.xaml:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <TextBlock x:Name="txbNumber" HorizontalAlignment="Center" Margin="0,-230,0,0" TextWrapping="Wrap" VerticalAlignment="Center"/>
    <GridView x:Name="TestGrid" HorizontalAlignment="Center" Height="200" Margin="0" VerticalAlignment="Center" Width="200" Background="#FF44AF0D">
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
        <GridViewItem Content="item"/>
    </GridView>
</Grid>

MainPage.xaml.cs:

public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();
        TestGrid.AddHandler(UIElement.PointerWheelChangedEvent, new PointerEventHandler(OnPointerWheelChanged), true);
    }
    int number = 0;
    private void OnPointerWheelChanged(object sender, PointerRoutedEventArgs e)
    {
        txbNumber.Text = number.ToString();
        number += 1;
    }
}

Thank you in advance.

like image 503
LightGreen Avatar asked Dec 21 '25 14:12

LightGreen


1 Answers

Examine the MouseWheelDelta property of the PointerRoutedEventArgs as follows:

private void WindowsPage_PointerWheelChanged(object sender, PointerRoutedEventArgs e)
{
  var delta = e.GetCurrentPoint((UIElement)sender).Properties.MouseWheelDelta;
}

Its value (int) indicates the direction the wheel has moved.

From the docs:

A positive value indicates that the wheel was rotated forward (away from the user) or tilted to the right; a negative value indicates that the wheel was rotated backward (toward the user) or tilted to the

like image 74
earloc Avatar answered Dec 24 '25 04:12

earloc



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!