Xaml 在ScrollViewer中捕获画布的指针移动事件
我有一个Xaml 在ScrollViewer中捕获画布的指针移动事件,xaml,windows-8,microsoft-metro,windows-8.1,Xaml,Windows 8,Microsoft Metro,Windows 8.1,我有一个Canvas,它覆盖PointerMoved事件,如果用户在其上“绘制”,则执行一些操作。现在我正试图将这个画布移动到滚动查看器中,以添加效果完美的缩放和滚动效果 <ScrollViewer x:Name="MainScrollViewer" Grid.Column="1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"
Canvas
,它覆盖PointerMoved
事件,如果用户在其上“绘制”,则执行一些操作。现在我正试图将这个画布
移动到滚动查看器
中,以添加效果完美的缩放和滚动效果
<ScrollViewer x:Name="MainScrollViewer" Grid.Column="1"
VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"
ZoomMode="Enabled" MinZoomFactor="0.5" MaxZoomFactor="2.0" >
<Canvas x:Name="MainCanvas" Background="#000000"
HorizontalAlignment="Left" VerticalAlignment="Top"
PointerMoved="MainCanvas_PointerMoved" />
</ScrollViewer>
但是,ScrollViewer
捕获所有指针移动事件,这导致主绘制过程不再工作
你知道怎么解决这个问题吗
在仍然允许缩放/平移的情况下使用触摸绘图-这在XAML中目前不受支持。您需要关闭缩放/平移,以便能够使用指针事件进行绘制,并且不可能通过自定义操作同时获得系统缩放和平移行为。但是,您可以尝试通过设置ManipulationMode=All来使用操纵事件,并使用Scale和Translate值手动处理双指滚动和收缩缩放
更多信息,请访问:
我没有使用canvas和scrollview,但我认为我找到的将对您有所帮助:)有一个窍门!您可以添加工具按钮(如手动)在两种情况下进行切换
MainScrollViewer.HorizontalScrollMode = ScrollMode.Auto;
MainScrollViewer.VerticalScrollMode = ScrollMode.Auto;
MainScrollViewer.ZoomMode = ZoomMode.Enabled;
尝试将VerticalScrollBarVisibility和HorizontalScrollBarVisibility设置为Disabled?具有滚动和缩放功能是我首先添加
ScrollViewer
的原因:)我的意思是,如果设置为禁用,缩放仍然有效,指针移动不起作用?