9

XAML ScrollViewer を使用して、画像にピンチズームを「安く」追加しようとしています。ただし、問題は、画像をパンすると、左端にスナップし続けることです。右にスライドすると問題なく表示されますが、2 番目に画像を離すと、左にスナップして戻ります。

この問題は水平方向にのみ持続します。垂直方向のパンの場合は正常に機能します。

これを最も単純なテストケースに抽象化しましたが、それは持続します。私のXAMLコードは次のとおりです。

    <ScrollViewer>
        <Image Source="http://i.imgur.com/1WlGT.jpg" />
    </ScrollViewer>

どんな助けでも大歓迎です。

4

2 に答える 2

14

私はこれを解決しました。

問題は、明示的に Horizo​​ntalScrollBarVisibility を true に設定する必要があることです。

<ScrollViewer x:Name="scrollViewer" 
                  VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" 
                  ZoomMode="Enabled">
        <Image Source="http://i.imgur.com/1WlGT.jpg" />
    </ScrollViewer>
于 2012-12-08T23:13:49.063 に答える
3

Michal Strzalkowski が回答の下のコメントで言及したことの可能な解決策の単なる例です。これは、画像がフルサイズで表示されている (コンテナの境界に収まらない) ことです。ElementNamePathを使用したBindingを使用した XAML でのクイック フィックス

<ScrollViewer x:Name="SV_ImageZoom"           
              MaxZoomFactor="3"
              MinZoomFactor="1"
              ZoomMode="Enabled"                          
              HorizontalScrollBarVisibility="Auto"
              VerticalScrollBarVisibility="Auto">
    <Image Source="http://i.imgur.com/1WlGT.jpg"
           Width="{Binding Path=ViewportWidth, ElementName=SV_ImageZoom}" />
</ScrollViewer>
于 2015-10-15T05:13:20.933 に答える