gpt4 book ai didi

c# - 在 WPF 中。如何像iPhone一样通过鼠标拖动滚动ScrollViewer中的对象?

转载 作者:太空狗 更新时间:2023-10-29 18:09:21 26 4
gpt4 key购买 nike

通过鼠标滚轮或滚动条种子拖动滚动效果很好。但是在 ScrollView 上通过鼠标拖动内容进行滚动还没有完成。我该如何实现此操作?

        <ScrollViewer x:Name="scrollViewer" Grid.Row="1" HorizontalScrollBarVisibility="Auto" CanContentScroll="True">
<Grid x:Name="galleryGrid" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="500"></ColumnDefinition>
<ColumnDefinition Width="500"></ColumnDefinition>
<ColumnDefinition Width="500"></ColumnDefinition>
<ColumnDefinition Width="500"></ColumnDefinition>
<ColumnDefinition Width="500"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Magin="10,10,10,10">Test</Button>
<Button Grid.Column="1" Magin="10,10,10,10">Test</Button>
<Button Grid.Column="2" Magin="10,10,10,10">Test</Button>
<Button Grid.Column="3" Magin="10,10,10,10">Test</Button>
<Button Grid.Column="4" Magin="10,10,10,10">Test</Button>
</Grid>
</ScrollViewer>

最佳答案

我找到了解决这个问题的方法。它在...

    Point scrollMousePoint = new Point();
double hOff = 1;
private void scrollViewer_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
scrollMousePoint = e.GetPosition(scrollViewer);
hOff = scrollViewer.HorizontalOffset;
scrollViewer.CaptureMouse();
}

private void scrollViewer_PreviewMouseMove(object sender, MouseEventArgs e)
{
if(scrollViewer.IsMouseCaptured)
{
scrollViewer.ScrollToHorizontalOffset(hOff + (scrollMousePoint.X - e.GetPosition(scrollViewer).X));
}
}

private void scrollViewer_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
scrollViewer.ReleaseMouseCapture();
}

private void scrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
scrollViewer.ScrollToHorizontalOffset(scrollViewer.HorizontalOffset + e.Delta);
}

谢谢!

关于c# - 在 WPF 中。如何像iPhone一样通过鼠标拖动滚动ScrollViewer中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20680162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com