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 上放置一个宽度/高度。它需要知道它占用了多少空间。

于 2011-03-22T13:23:17.813 回答