【问题标题】:Getting a scrollviewer to stretch until maxwidth让滚动查看器拉伸直到最大宽度
【发布时间】:2014-11-06 15:50:41
【问题描述】:

我有一个滚动查看器,它不会拉伸以适应其内容,直到最大宽度。目前,它将宽度设置为 MinWidth 值……仅此而已。

这是我正在使用的代码,我尝试过使用和不使用 Horizo​​ntalAlignment="Stretch"。

<Border BorderBrush="#5D5D5D" BorderThickness="5" Padding="0" Height="75"  Background="White">
    <ScrollViewer HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Disabled" MaxWidth="800" MinWidth="200" HorizontalAlignment="Stretch">
        <ItemsControl ItemsSource="{Binding People}" >
        </ItemsControl>
    </ScrollViewer>
</Border>    

【问题讨论】:

  • 试试HorizontalContentAlignment 拉伸
  • @ChrisW。感谢您的建议,但恐怕它不起作用。
  • 分享更多您的布局或通用布局以重现该问题,您的罪魁祸首可能在于您的其他地方的布局。
  • 这实际上是我在一个单独的空白项目中创建的一个通用的,以尝试隔离问题。在空白页面内,用文本块填充 itemscontrol 足以重现问题。
  • 所以这是新页面上的唯一内容? Border 和 ScrollViewer 是这样的吗?有趣的是,把它扔到一个像 Grid 这样的面板中,看看什么实际上没有拉伸,Border、ScrollViewer 或 ItemsControl。您的 Horizo​​ntalContentAlignment 可能是错误的。

标签: c# wpf xaml windows-runtime


【解决方案1】:

对我来说一切都很好,除了Border 不受ScrollViewerMaxWidth 的限制,因此一旦可用宽度超过@987654327,ScrollViewer 就会在更宽的Border 中居中@。

尝试将MinWidthMaxWidth 移动到Border

这就是我的结果,MaxWidth 减少到 400 以获得更小的屏幕截图:

如您所见,Border 将水平增长到MaxWidth。当窗口缩小时,Border 的宽度会减小,直到碰到200

我添加了ItemTemplate,这样您就可以看到ItemsControl 中项目的边界;如果您将其注释掉,大小调整行为不会改变。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多