我有一个容器画布,我正在装载一个大尺寸画布。我正在使用手势监听器方法。 OnDragStarted,OnDragDelta和OnDragCompleted等方法很少,我使用这些方法来平移内部(更大尺寸)画布。
问题是我无法限制内部画布的平移,这意味着我应该能够在外部画布的边界内平移内部画布。
怎么能这样做?
答案 0 :(得分:0)
我的理解是,您希望能够在外部画布中移动内部画布,并限制内部画布可以移动多少。
此功能听起来与可拖动的地图效果非常相似。如果是这样,您是否可以使用自定义图像调整地图控件以进行平移/缩放?
要按照我的理解回答您的具体问题,您需要在处理GestureListener
或GestureReceiver
事件时检测内部画布的当前位置。
然后当你到达你的x,y点时停止运动,或者如果事件已经在那个位置则阻止执行。
答案 1 :(得分:0)
我认为您缺少的是定义外部画布的剪辑。您需要这样做的原因是默认情况下Canvas没有overflow:hidden。其中任何实际上更大的孩子都会在它的边界之外显示出来。
您需要为外部Canvas设置剪辑,如下所示:
<Canvas Width="200" Height="100">
<Canvas.Clip>
<RectangleGeometry Rect="0, 0, 200, 100"/>
</Canvas.Clip>
</Canvas>