【问题标题】:WPF: Trigger a content resize with GridSplitterWPF:使用 GridSplitter 触发内容调整大小
【发布时间】:2012-05-07 14:14:54
【问题描述】:

我正在尝试强制网格/扩展器重新评估它是否需要滚动条,因为它显示为空。

我正在使用这个布局:

<Grid>
  <toolstrip /> <!-- fixed height row -->
  <Scrollviewer>  <!-- * height -->
    <Grid> <!-- all rows are 'Auto' height -->
      <Expander />
      <Expander> <!-- this one stretches far too high -->
        <WPF Toolkit: DataGrid />
      <Expander>
      <GridSplitter/>
      <Expander />
    <Grid>
  </Scrollviewer>
  <stackpanel />   <!-- fixed height row -->
<Grid>

DataGrid(WPF 工具包)在 Window 初始化时绑定到一个属性。通过一些调查,我意识到当窗口初始化时,GridView 中的列从大约 10 像素宽开始,然后添加内容,然后根据 XAML 中的大小调整它们的大小(全部使用星宽- 例如:2*)。这会导致网格的大小调整为窗口显示所需高度的 6 倍左右,然后它不会弹回,查看窗口底部的唯一方法是滚动或移动 GridSplitter备份到应有的位置并调整窗口大小。我没有在任何东西上设置 VerticalAlignment 属性。

到目前为止,我已经在问题扩展器和 InvalidateArrange()、InvalidateScrollInfo()、InvalidateVisual() 和 UpdateLayout() 上尝试了以下所有称为 InvalidateArrange()、InvalidateVisual();、InvalidateMeasure() 和 UpdateLayout()在它上面的 Grid 上,但它不会缩回。

有什么方法可以强制它不强制 DataGrid 中列的宽度?

【问题讨论】:

  • 我不明白 - 你在谈论数据网格列宽但垂直滚动问题?网格内容是否环绕以强制行高增长?

标签: wpf expander gridsplitter


【解决方案1】:

尝试在 ScrollViewer 上设置这些属性:

<ScrollViewer CanContentScroll="True"
              VerticalScrollBarVisibility="Auto" 
              HorizontalScrollBarVisibility="Auto">
    ... content ...
</ScrollViewer>

如果这不起作用,您能否提供更准确的 XAML 表示。此外,深入了解ScrollViewer 可能会有所帮助。

【讨论】:

    猜你喜欢
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 2016-08-23
    • 2013-03-17
    • 1970-01-01
    • 2013-07-17
    相关资源
    最近更新 更多