WPF视图框内的可滚动内容,带有“UniformToFill”

dy1byipe  于 2023-10-22  发布在  其他
关注(0)|答案(2)|浏览(138)

我如何才能使内容这是放在WPF ViewboxStretch="UniformToFill"可滚动
举例来说:

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

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

调整内容的大小以填充目标尺寸,同时保留其原始纵横比。如果目标的长宽比不同于源,则源内容将被剪裁以适合目标尺寸。
因此,我尝试使用ScrollViewer来滚动到源内容中被剪切的区域,但滚动条是可见的,但被禁用。
我试过ClipToBounds="False",但没有用。

x7yiwoj4

x7yiwoj41#

ViewBox根据其所占的尺寸调整其内容的大小。ScrollViewer提供无限宽/高的内容来呈现。所以,当你把一个ViewBox放在一个ScrollViewer中时,ViewBox会认为它有“世界上所有的空间”来拉伸。
此外,ViewBox使用渲染转换来拉伸内容,这意味着ScrollViewer永远不会知道内容的最终大小。
为了让你的ScrollViewer工作,你必须在ViewBox上设置一个宽度/高度。它需要知道它占据了多少空间。

af7jpaap

af7jpaap2#

我想你想要的差不多就是这个。

<Viewbox Stretch="Fill" Height="800">
    <Grid Height="800">
        <ScrollViewer HorizontalScrollBarVisibility="auto" VerticalScrollBarVisibility="Disabled">
            <DockPanel>
                <dashboard:TotalizadoresControl 
                    DockPanel.Dock="Top"
                    DataContext="{Binding TotalizadoresContexto}" /> 
            </DockPanel>
        </ScrollViewer>
    </Grid>
</Viewbox>

相关问题