微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何使用Stretch =“UniformToFill”在 WPF ViewBox中放置的内容可以滚动?

例如:

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

      </ViewBox>
   </ScrollViewer>
</Grid>

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

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

解决方法

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐