如何将内容放在WPF Viewbox
内,Stretch="UniformToFill"
可滚动?
例如:
<Grid Height="500" Width="1000" >
<ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible" >
<Viewbox Stretch="UniformToFill">
......
</Viewbox>
</ScrollViewer>
</Grid>
调整内容的大小以填充目标维度,同时保留其原始宽高比。如果目的地的宽高比与来源不同,则源内容将被剪裁以适合目标尺寸。
所以我尝试使用ScrollViewer
能够滚动到被剪辑的源内容区域,但滚动条可见但已禁用。
我尝试了ClipToBounds="False"
,但没有帮助。
答案 0 :(得分:15)
ViewBox根据其占用的尺寸调整其内容的大小。 ScrollViewer为其内容提供无限宽度/高度以进行渲染。因此,当您将ViewBox放在ScrollViewer中时,ViewBox认为它具有“世界上所有空间”来拉伸。
此外,ViewBox使用渲染转换来拉伸内容,这意味着您的ScrollViewer永远不会知道内容的最终大小。
要使ScrollViewer正常工作,您必须在ViewBox上放置宽度/高度。它需要知道它占用了多少空间。