C#WPF scrollviewer无法像Windows Store应用程序一样工作

最大的整体

我目前正在使用WPF开发应用程序。而且,我不禁注意到与Windows Store App变体相比ScrollViewer功能的不同。

当我位于屏幕的边缘和ScrollViewer的边缘时,我想要滑动,以便远离边缘。我看到Windows桌面或菜单栏(在屏幕底部时)。是否有解决方案来防止这种滚动行为发生?当您滚动到屏幕边缘然后撞回并看到下面的一些Windows平台时,这很烦人(而且很丑!)。Windows Store App ScrollViewer中已修复此行为。

我尝试覆盖ScrollChanged并检查fehorizontalOffset == 0 && horizontalChange < 0并在这种情况下返回。但是此检查似乎不起作用(因为那样可能已经太迟了)。而且我似乎找不到Windows Store Apps解决此问题的方式。

在此处输入图片说明

也许你们有一个主意?


编辑: .NET 4.5.1中WPF项目的复制

这段XAML在WPF中重新造成了我的问题。但是,在Windows Store App中,该问题似乎不存在。

当滚动到应用程序的边缘和/或在应用程序的边缘上时,如何防止这种行为?

<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>
艾蒂安·马赫(Etienne Maheu)

这是Windows 8与滚动相关的默认行为。到达可滚动视图的边缘时,整个应用程序将“反弹”。这在每种情况下都会发生,并且是系统动画的一部分。例如,在很长的文件夹列表中,您可以在Windows资源管理器中看到它。仅在通过触摸滚动时(如果我没有记错的话)在非全屏应用程序上会发生这种情况。我目前无权使用Windows 8计算机来测试此声明, 并且很可能没有办法禁用此行为

现代环境是一个完全独立的应用程序环境,根本不以相同的方式处理触摸手势。这就是为什么WinRT应用程序中不存在此行为的原因。

编辑:此效果称为操纵边界反馈。当操纵事件超出其容器的限制时,它将触发。您可以禁用它来覆盖OnManipulationBoundaryFeedback(ManipulationBoundaryFeedbackEventArgs)受影响方法,UIElement如下所示:

class NoTouchFeedbackWindow : Window
{
    protected override void OnManipulationBoundaryFeedback(ManipulationBoundaryFeedbackEventArgs e)
    {
        e.Handled = true;
    }
}

这也可以直接在您的ScrollViewer上执行,也可以在链上的任何控件上完成。

您可以在以下位置找到有关此行为的更多信息:

希望这可以解决您的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#WPF应用程序Webbrowser无法运行angularjs

来自分类Dev

从CMD运行Wpf应用程序/像calc一样运行?

来自分类Dev

如何像DebugView应用程序一样读取c#Debug.WriteLine?

来自分类Dev

无法将图像添加到C#WPF .NetCore WPF应用程序

来自分类Dev

C#WPF Clipboard.SetText()无法正常工作

来自分类Dev

c#wpf TabItem选择无法完全正常工作

来自分类Dev

无法获取输入错误框以显示红色C#WPF应用程序

来自分类Dev

在C#WPF应用程序中关闭所有Windows

来自分类Dev

在C#WPF应用程序中关闭所有Windows

来自分类Dev

如何为C#wpf应用程序自定义Windows 8.1相机应用程序

来自分类Dev

像Facebook应用程序一样的UITableView

来自分类Dev

如何像应用程序一样运行网页?

来自分类Dev

像购物应用程序一样的RecyclerView

来自分类Dev

C#WPF应用程序在Visual中启动,但在直接运行时无法启动

来自分类Dev

无法从C#WPF中的另一个窗口调用方法

来自分类Dev

C#WPF DataSource属性无法识别

来自分类Dev

C#WPF MVVM应用程序的启动顺序

来自分类Dev

在C#WPF应用程序中处理线程

来自分类Dev

C#WPF应用程序:什么是“这”?

来自分类Dev

在C#WPF应用程序中处理线程

来自分类Dev

C#WPF MVVM应用程序的启动顺序

来自分类Dev

c#WPF如何延迟应用程序的自动启动?

来自分类Dev

如何使Windows Phone应用程序像默认应用程序一样更快地加载?

来自分类Dev

如何使Windows Phone应用程序像默认应用程序一样更快地加载?

来自分类Dev

数组如何像C中的指针一样工作?

来自分类Dev

C#WPF应用程序在已开发的计算机上运行,但在其他任何地方都无法运行

来自分类Dev

C#WPF应用程序在已开发的计算机上运行,但在其他任何地方都无法运行

来自分类Dev

从终端像命令一样运行C ++程序

来自分类Dev

C#WPF中的函数内的后台工作程序

Related 相关文章

  1. 1

    C#WPF应用程序Webbrowser无法运行angularjs

  2. 2

    从CMD运行Wpf应用程序/像calc一样运行?

  3. 3

    如何像DebugView应用程序一样读取c#Debug.WriteLine?

  4. 4

    无法将图像添加到C#WPF .NetCore WPF应用程序

  5. 5

    C#WPF Clipboard.SetText()无法正常工作

  6. 6

    c#wpf TabItem选择无法完全正常工作

  7. 7

    无法获取输入错误框以显示红色C#WPF应用程序

  8. 8

    在C#WPF应用程序中关闭所有Windows

  9. 9

    在C#WPF应用程序中关闭所有Windows

  10. 10

    如何为C#wpf应用程序自定义Windows 8.1相机应用程序

  11. 11

    像Facebook应用程序一样的UITableView

  12. 12

    如何像应用程序一样运行网页?

  13. 13

    像购物应用程序一样的RecyclerView

  14. 14

    C#WPF应用程序在Visual中启动,但在直接运行时无法启动

  15. 15

    无法从C#WPF中的另一个窗口调用方法

  16. 16

    C#WPF DataSource属性无法识别

  17. 17

    C#WPF MVVM应用程序的启动顺序

  18. 18

    在C#WPF应用程序中处理线程

  19. 19

    C#WPF应用程序:什么是“这”?

  20. 20

    在C#WPF应用程序中处理线程

  21. 21

    C#WPF MVVM应用程序的启动顺序

  22. 22

    c#WPF如何延迟应用程序的自动启动?

  23. 23

    如何使Windows Phone应用程序像默认应用程序一样更快地加载?

  24. 24

    如何使Windows Phone应用程序像默认应用程序一样更快地加载?

  25. 25

    数组如何像C中的指针一样工作?

  26. 26

    C#WPF应用程序在已开发的计算机上运行,但在其他任何地方都无法运行

  27. 27

    C#WPF应用程序在已开发的计算机上运行,但在其他任何地方都无法运行

  28. 28

    从终端像命令一样运行C ++程序

  29. 29

    C#WPF中的函数内的后台工作程序

热门标签

归档