我有一个启用了VerticalScroll的GridView.在MainPage.xaml.cs中,我拦截了ScrollView的PointerWheelChanged事件.
在这个PointerWheelChanged事件中,你能知道轮子是向上还是向下滚动?
代码.
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>
Run Code Online (Sandbox Code Playgroud)
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;
}
}
Run Code Online (Sandbox Code Playgroud)
先感谢您.
检查如下MouseWheelDelta属性PointerRoutedEventArgs:
private void WindowsPage_PointerWheelChanged(object sender, PointerRoutedEventArgs e)
{
var delta = e.GetCurrentPoint((UIElement)sender).Properties.MouseWheelDelta;
}
Run Code Online (Sandbox Code Playgroud)
其值(int)表示车轮移动的方向.
来自文档:
正值表示车轮向前旋转(远离用户)或向右倾斜; 负值表示车轮向后旋转(朝向用户)或倾斜到