Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 自定义控件画布防止在scrollviewer中滚动-Windows运行时_.net_C# 4.0_Windows Runtime_Custom Controls - Fatal编程技术网

.net 自定义控件画布防止在scrollviewer中滚动-Windows运行时

.net 自定义控件画布防止在scrollviewer中滚动-Windows运行时,.net,c#-4.0,windows-runtime,custom-controls,.net,C# 4.0,Windows Runtime,Custom Controls,我有一个ScrollViewer,其中包含一个StackPanel(垂直),其中包含我设计的一些非常广泛的自定义控件。ScrollViewer允许用户水平滚动自定义控件 当我为模拟器使用鼠标输入时,我会得到一个滚动条,这很好。当我为模拟器使用触摸输入时,我可以通过拖动自定义控件滚动,但只能在某些区域滚动。如果我尝试从自定义控件中的画布元素开始拖动,它将不起作用。但是,如果我从画布外部(在边距空间等)开始拖动触摸,它的工作方式与您预期的相同 画布中有一些操纵事件处理程序,用于自定义控件中的各种函数

我有一个ScrollViewer,其中包含一个StackPanel(垂直),其中包含我设计的一些非常广泛的自定义控件。ScrollViewer允许用户水平滚动自定义控件

当我为模拟器使用鼠标输入时,我会得到一个滚动条,这很好。当我为模拟器使用触摸输入时,我可以通过拖动自定义控件滚动,但只能在某些区域滚动。如果我尝试从自定义控件中的画布元素开始拖动,它将不起作用。但是,如果我从画布外部(在边距空间等)开始拖动触摸,它的工作方式与您预期的相同

画布中有一些操纵事件处理程序,用于自定义控件中的各种函数。是否有可能这些人窃取了输入,从而使ScrollViewer无法完成其工作?如果是这样的话,我能做些什么让他们向上报告ScrollViewer的输入?还是我在错误的地方调查

我可以按要求发布代码

编辑:


经过进一步的仔细调查,我发现了一些东西。我的wide控件内部有一些(其他)自定义控件和一组行。当我开始拖动一条线时,它会像预期的那样拖动。所有其他的空间都充满了第二个自定义控件(非常紧凑)。结果是我的自定义控件窃取了输入。我在第二个自定义控件中取消选中了主画布上的所有交互类型,并将操作设置为缩放而不是系统。将这些设置回默认设置,解决了问题。

经过进一步调查,仔细点击,我发现了一些问题。我的wide控件内部有一些(其他)自定义控件和一组行。当我开始拖动一条线时,它会像预期的那样拖动。所有其他的空间都充满了第二个自定义控件(非常紧凑)。结果是我的自定义控件窃取了输入

重要部分:

我在第二个自定义控件中取消选中了主画布上的所有交互类型,并将操作设置为缩放而不是系统(这可能是窃取输入的部分)。将其设置回默认值,以解决问题


PS:我觉得自己很笨

如果可能的话,在dropbox/skydrive上发布代码或上传项目。使用stackpanel和ScrollViewer并尝试滚动有时可能会有点问题-尝试用带有行的网格替换stackpanel,看看这是否解决了问题。当我遇到滚动的问题时,我已经修复了它。