必要なプロパティまたはオブジェクトが見つかりません..
ドラッグ可能でズーム可能な画像を実装しましたが、画面の外にドラッグできるため、画像がビューから失われます。
画像をボックス内に保持するには、どこに画像を配置する必要がありますか (そして、おそらく素晴らしいバウンス効果があります)?
編集:
事実上、私の画像はズームインの可能性だけで、スタックパネルに残る必要があります。(最初のレンダリングとして最大ズームアウト)。
ちょっとしたコード:
    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;
        }
    }
If 条件の意味: 拡大している場合 -> e.DistanceRatio が >1 であるため問題ありません。ズームアウトしている場合は、initialScale が同じになるまで停止します!
外へのドラッグを回避する方法については、まだ助けが必要です。