在WPF TabControl中滚动内容溢出

时间:2012-06-04 12:34:41

标签: .net wpf wpf-controls

我有一个显示TabControl的WPF UserControl。有些UserControl大于TabControl并被裁剪,因此我通过将ContentPresenter包裹在ScrollViewer HorizontalScrollBarVisibility和{{1}中来修改其模板设置为VerticalScrollBarVisibility

此解决方案的问题在于,由"Auto"托管的相对大小的UserControl现在可以获得比预期更宽的像素数,因为TabControl不会限制其大小。

如何在WPF ScrollViewer中滚动内容溢出而不使其相对大小的内容超出比例?

2 个答案:

答案 0 :(得分:3)

我最终使用了这篇博文中描述的解决方案:

When to scroll? The problem of infinite-sized UI elements inside a ScrollViewer

总结基本理念:

  

因此,解决方案似乎很简单:我们可以告诉ScrollViewer具有双重行为:

     
      
  • 如果可用的屏幕尺寸小于某个最小值,则允许滚动,并将内容的可用尺寸设置为最小尺寸。

  •   
  • 如果可用的屏幕尺寸大于最小值,则表现得像一个普通的容器,只给它的孩子们屏幕上的空间。

  •   

答案 1 :(得分:0)

您必须修复高度或宽度

尝试将您的内容控件放入ScrollViewer