WPF: запуск изменения размера содержимого с помощью GridSplitter

Я пытаюсь заставить сетку/расширитель переоценить, нужна ли ему полоса прокрутки, так как она показывает пустоту.

Я использую этот макет:

<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 Toolkit) привязывается к свойству при инициализации окна. В ходе некоторых исследований я понял, что при инициализации окна столбцы в GridView начинаются примерно с 10 пикселей в ширину, затем добавляется содержимое, затем их размер изменяется в зависимости от размеров в XAML (все с использованием ширины звезды - например: 2*). Это приводит к изменению размера сетки примерно в 6 раз по сравнению с высотой, которая должна быть при отображении окна, затем она не отскакивает назад, и единственный способ увидеть, что находится внизу окна, - это прокрутить или переместить GridSplitter. вернитесь туда, где он должен быть, и измените размер окна. Я ничего не устанавливал в свойствах VerticalAlignment.

До сих пор я пробовал все следующие функции, называемые InvalidateArrange(), InvalidateVisual();, InvalidateMeasure() и UpdateLayout() в расширителе задач и InvalidateArrange(), InvalidateScrollInfo(), InvalidateVisual() и UpdateLayout() в сетке. над ним, но он не сжимается.

Можно ли каким-либо образом заставить его сократить ширину столбцов в DataGrid?


person Echilon    schedule 06.06.2009    source источник
comment
Я не понимаю - вы говорите о ширине столбцов сетки данных, но о проблемах с вертикальной прокруткой? Обтекание содержимого сетки приводит к увеличению высоты строки?   -  person MarcE    schedule 05.12.2011


Ответы (1)


Попробуйте установить эти свойства в ScrollViewer:

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

Если это не сработает, можете ли вы предоставить более точное представление своего XAML. Также может помочь подробное изучение ScrollViewer.

person rmoore    schedule 06.06.2009