我目前正在使用WPF开发一个应用程序。
我不禁注意到与Windows Store应用程序版本相比,ScrollViewer功能的差异。
当我处于屏幕边缘和ScrollViewer的边缘,并且我想滑动以使自己远离边缘时,我会看到Windows桌面或菜单栏(当在屏幕底部时)。 有没有解决方法可以防止这种滚动行为发生?当你滚动到屏幕边缘,然后被弹回并看到Windows平台下的一点内容时,这实在很烦人(也很丑!)。 Windows Store应用程序的ScrollViewer已经解决了这个问题。
我尝试重写ScrollChanged并检查例如horizontalOffset == 0 && horizontalChange < 0,如果是这种情况则返回。但是这个检查似乎不起作用(因为那时可能已经太晚了)。 而我似乎找不到Windows Store应用程序是如何解决这个问题的。
也许你们有什么想法?
编辑:.NET 4.5.1中WPF项目的重现
这段XAML在WPF中重新创建了我的问题。但是在Windows Store应用程序中,这个问题似乎不存在。
我如何防止滚动到我的应用程序的边缘和/或越过边缘时出现这种行为?
当我处于屏幕边缘和ScrollViewer的边缘,并且我想滑动以使自己远离边缘时,我会看到Windows桌面或菜单栏(当在屏幕底部时)。 有没有解决方法可以防止这种滚动行为发生?当你滚动到屏幕边缘,然后被弹回并看到Windows平台下的一点内容时,这实在很烦人(也很丑!)。 Windows Store应用程序的ScrollViewer已经解决了这个问题。
我尝试重写ScrollChanged并检查例如horizontalOffset == 0 && horizontalChange < 0,如果是这种情况则返回。但是这个检查似乎不起作用(因为那时可能已经太晚了)。 而我似乎找不到Windows Store应用程序是如何解决这个问题的。
也许你们有什么想法?
编辑:.NET 4.5.1中WPF项目的重现
这段XAML在WPF中重新创建了我的问题。但是在Windows Store应用程序中,这个问题似乎不存在。
我如何防止滚动到我的应用程序的边缘和/或越过边缘时出现这种行为?
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" ResizeMode="NoResize" WindowState="Maximized" WindowStyle="None">
<Grid>
<ScrollViewer HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden" PanningMode="Both">
<Rectangle Height="2500" Stroke="Black" Width="3500" HorizontalAlignment="Left" VerticalAlignment="Top">
<Rectangle.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0,0.5">
<GradientStop Color="#FF00FF68" Offset="0"/>
<GradientStop Color="Red" Offset="1"/>
<GradientStop Color="#FF95FF00" Offset="0.506"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
</ScrollViewer>
</Grid>
</Window>