【发布时间】:2015-12-08 07:03:07
【问题描述】:
我想制作一个触摸查看器,我想放大手指之间的点。
我在网格中有一个带有 content-presenter 的视图框:
<Grid IsManipulationEnabled="True">
<Viewbox x:Name="PART_Viewbox">
/// Content
</Viewbox>
</Grid>
用我的鼠标滚轮放大到鼠标所在的位置,我通过以下方法解决了:
var position = e.GetPosition(PART_Viewbox);
matrix.ScaleAtPrepend(scale, scale, position.X, position.Y);
e.GetPosition 方法仅在 MouseEventsArgs 中可用,而在 ManipulationDeltaEventArgs 中不可用。
那么我怎样才能得到触摸模式下的相对位置呢?
当我从 ManipulationDeltaEventArgs 获取 e.ManipulationOrigin 并且网格大于 Viewbox 时,它会在放大或缩小时将视图框的内容转换到其他位置。
显示放大到内容(图像)中间的大多数示例。这不是我想要的。
【问题讨论】:
标签: wpf touch multi-touch pinchzoom