我有一个ScrollViewer,其中包含一个StackPanel(垂直),其中包含我设计的一些非常宽的自定义控件。ScrollViewer允许用户水平滚动自定义控件。
当我为模拟器使用鼠标输入时,我得到一个滚动条,并且工作正常。当我为模拟器使用触摸输入时,我可以通过拖动自定义控件来滚动,但仅限于某些区域。如果我尝试从自定义控件中的Canvas元素开始触摸进行拖动,则它不起作用。但是,如果我从该画布外部(在边距空间等)开始拖动触摸,它会按照您期望的方式工作。
画布中有一些操作事件处理程序,用于自定义控件中的各种功能。这些是否有可能窃取输入以使ScrollViewer无法完成工作?如果是这种情况,我能做些什么让他们向上报告ScrollViewer的输入吗?还是我在错误的地方调查?
我可以按要求发布代码。
编辑:
经过仔细点击进一步调查后,我发现了一些东西。我的宽控件内部有一些(其他)自定义控件和一堆行。当我开始在一条线上拖动时,它会按预期拖动。所有其他空间都充满了第二个自定义控件(它非常紧凑)。事实证明我的自定义控件正在窃取输入。我在第二个自定义控件中取消选中主画布上的所有交互类型,并将操作设置为缩放而不是系统。将这些设置回默认值可以解决问题。