7

WPF 内に配置されたコンテンツViewboxStretch="UniformToFill" スクロール可能にするにはどうすればよいですか?

例えば:

<Grid Height="500" Width="1000" >
  <ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible" >
      <Viewbox Stretch="UniformToFill">
       ......

      </Viewbox>
   </ScrollViewer>
</Grid>

コンテンツは、元の縦横比を維持しながら、宛先の寸法を満たすようにサイズ変更されます。宛先の縦横比がソースと異なる場合、ソース コンテンツは宛先のサイズに収まるようにクリップされます。そのため、クリップされたソースコンテンツの領域にスクロールできるよう
に使用しようとしましたが、スクロールバーは表示されていますが無効になっています。ScrollViewer

試してみClipToBounds="False"ましたが、役に立ちませんでした。

4

1 に答える 1

17

ViewBox は、占有するサイズに基づいてコンテンツのサイズを変更します。ScrollViewer は、レンダリングするコンテンツに無限の幅/高さを与えます。そのため、ViewBox を ScrollViewer 内に配置すると、ViewBox は「世界中のすべてのスペース」を拡大できると見なします。

また、ViewBox はレンダリング変換を使用してコンテンツを引き伸ばします。つまり、ScrollViewer はコンテンツの最終的なサイズを知ることができません。

ScrollViewer を機能させるには、ViewBox に Width/Height を設定する必要があります。占有しているスペースの量を知る必要があります。

于 2011-03-22T13:23:17.813 に答える