WPF Viewbox中的可滚动内容,带有“UniformToFill”

时间:2011-03-22 10:40:02

标签: wpf silverlight layout scroll viewbox

如何将内容放在WPF Viewbox内,Stretch="UniformToFill" 可滚动

例如:

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

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

调整内容的大小以填充目标维度,同时保留其原始宽高比。如果目的地的宽高比与来源不同,则源内容将被剪裁以适合目标尺寸。
所以我尝试使用ScrollViewer能够滚动到被剪辑的源内容区域,但滚动条可见但已禁用。

我尝试了ClipToBounds="False",但没有帮助。

1 个答案:

答案 0 :(得分:15)

ViewBox根据其占用的尺寸调整其内容的大小。 ScrollViewer为其内容提供无限宽度/高度以进行渲染。因此,当您将ViewBox放在ScrollViewer中时,ViewBox认为它具有“世界上所有空间”来拉伸。

此外,ViewBox使用渲染转换来拉伸内容,这意味着您的ScrollViewer永远不会知道内容的最终大小。

要使ScrollViewer正常工作,您必须在ViewBox上放置宽度/高度。它需要知道它占用了多少空间。