4

それに応じて画像をズームすることに少し問題があります。ImageXAMLに、ズームScrollViewerできるように添付されたがあります。このような :

<ScrollViewer x:Name="ImageScrollViewer">
    <Image x:Name="ImagePanel" 
           Stretch="Uniform" 
           VerticalAlignment="Center" 
           HorizontalAlignment="Center"/>
</ScrollViewer>

私がやりたいのは、画像が大きすぎて画像コントロールに収まらず、ズームアウトする必要がある場合(この場合のみ)、ScrollViewerのZoomFactorをプログラムで設定して収まるようにすることです。画像コントロール。私の問題は、画像の幅と高さを考慮して、その要素をどのように決定できるかがよくわからないことです。

また、画像を拡大縮小したくないので、何らかの方法で変更したいのですが、この問題についてSOに関する同様のトピックをいくつか見ましたが、これまでのところ、私の場合には何も当てはまりません。垂直/水平スクロールバーが表示されなくなるまで、画像をズームアウトする必要があります。

これを行う方法についての提案は、大歓迎です、ありがとう!

4

1 に答える 1

5

の寸法 ( WidthHeight) をImageに合​​わせScrollViewer.ViewportWidth/Heightて設定すると、デフォルトですべてのイメージが表示されます。次にMinZoomFactor1 に設定して、意味のある範囲を超えてズームアウトしないようにしMaxZoomFactorます。

さらに制御したい場合は、[画像サイズ] プロパティをデフォルトAuto(およびVerticalAlignment/HorizontalAlignmentとは異なる) のままにし、 ( ) と(が実際にロードされていると仮定して)Stretchの縦横比を比較します。縦横比が広い場合- が必要になります。縦横比が広い場合- が必要になります。イメージ ピクセルあたりのスクリーン ピクセルを超えてズームしたい場合を除き (アプリケーションの 100% スケーリングで)、関係なく 1 にする必要があります。ScrollViewerViewportWidth/ViewportHeightImageActualWidth/ActualHeightImage.Stretch="None"ImageScrollViewerMinZoomFactorScrollViewer.ViewportHeight / Image.ActualHeightImageMinZoomFactorScrollViewer.ViewportWidth / Image.ActualWidthMaxZoomFactor

私のブログ投稿が興味深いかもしれません。

http://blog.onedevjob.com/2012/07/21/creating-a-zoomable-scrollviewer-with-zoomsnappoints-in-winrt-xaml/

于 2013-02-25T08:12:16.730 に答える