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

rem*_*rem 7 silverlight wpf layout scroll viewbox

我如何才能让内容其内放WPF ViewboxStretch="UniformToFill" 可滚动的

例如:

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

      </Viewbox>
   </ScrollViewer>
</Grid>
Run Code Online (Sandbox Code Playgroud)

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

我试过ClipToBounds="False"但它没有帮助.

Lai*_*ith 15

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

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

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