У меня есть Canvas внутри ScrollViewer.
<ScrollViewer x:Name="svWorkSpace" Visibility="Collapsed" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"
Tapped="svWorkSpace_Tapped"
PointerPressed="svWorkSpace_PointerPressed"
PointerMoved="svWorkSpace_PointerMoved"
PointerReleased="svWorkSpace_PointerReleased">
<Grid>
<Image x:Name="cvWorkImage"/>
<Canvas x:Name="cvWorkSpace"/>
</Grid>
</ScrollViewer>
В коде PointerPressed я фиксирую начальную точку, а в коде PointerMoved я рисую прямоугольник по мере перемещения указателя (также удаляю замыкающий прямоугольник при перемещении, сохраняя только один прямоугольник в холст. С помощью этого метода я добиваюсь эффекта размера прямоугольника). PointerReleased примет последний прямоугольник.
Все работает нормально, используя мышь на сенсорном устройстве, но не используя палец. Изображение просто прокручивается, когда я двигаю пальцем.
Пытался переместить код в Canvas, как показано ниже. Не удалось нарисовать прямоугольник с помощью мыши и касания.
<ScrollViewer x:Name="svWorkSpace" Visibility="Collapsed" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
<Grid>
<Image x:Name="cvWorkImage"/>
<Canvas x:Name="cvWorkSpace"
Tapped="svWorkSpace_Tapped"
PointerPressed="svWorkSpace_PointerPressed"
PointerMoved="svWorkSpace_PointerMoved"
PointerReleased="svWorkSpace_PointerReleased"/>
</Grid>
</ScrollViewer>
Направьте меня в правильном направлении, пожалуйста.