Я не могу найти недвижимость или объект, который мне нужен.Как не вытащить изображение из рамки?
Я реализовал перетаскиваемое и масштабируемое изображение, но я могу вытащить его из экрана, поэтому я потерял изображение из вида.
Где я должен помещать свое изображение, чтобы держать его внутри коробки (и, возможно, с хорошим эффектом отскока)?
EDIT:
Pratically мой образ должен оставаться в StackPanel, только с возможностью увеличения заезда. (максимальное уменьшение в качестве первого рендеринга).
Немного кода:
private void OnPinchStarted(object sender, PinchStartedGestureEventArgs e)
{
initialAngle = compositeTransform.Rotation;
initialScale = compositeTransform.ScaleX;
}
private void OnPinchDelta(object sender, PinchGestureEventArgs e)
{
compositeTransform.ScaleX = initialScale * e.DistanceRatio;
compositeTransform.ScaleY = initialScale * e.DistanceRatio;
}
private void OnDragDelta(object sender, DragDeltaGestureEventArgs e)
{
compositeTransform.TranslateX += e.HorizontalChange;
compositeTransform.TranslateY += e.VerticalChange;
}
<StackPanel x:Name="container">
<Image x:Name="image_chart">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform x:Name="scale" />
<TranslateTransform x:Name="transform" />
<CompositeTransform x:Name="compositeTransform"/>
</TransformGroup>
</Image.RenderTransform>
<toolkit:GestureService.GestureListener>
<toolkit:GestureListener PinchStarted="OnPinchStarted" PinchDelta="OnPinchDelta"
DragDelta="OnDragDelta"/>
</toolkit:GestureService.GestureListener>
</Image>
</StackPanel>
EDIT 2 - Половина ответа
Я, наконец, узнать, как остановить Отдалиться в оригинальном размере!
private void OnPinchDelta(object sender, PinchGestureEventArgs e)
{
if (1.0 <= (initialScale * e.DistanceRatio))
{
compositeTransform.ScaleX = initialScale * e.DistanceRatio;
compositeTransform.ScaleY = initialScale * e.DistanceRatio;
}
}
условие Если означает: если я масштабирование -> нет проблем, потому что e.DistanceRatio является> 1. Если я уменьшу масштаб, я остановлюсь до тех пор, пока initialScale не станет таким же!
Теперь мне по-прежнему нужна помощь в том, как избежать перетаскивания снаружи.
Как вы сейчас реализовали? – Pol
Я добавил код. – Enrichman