2016-03-03 3 views
0

Как показано на рисунке ниже, у меня есть несколько полей ввода и DataGrid в окне WPF. Все элементы управления расположены внутри ScrollViewer.WPF - Вложенный ScrollViewer

enter image description here

Пример кода:

<Window> 
    <ScrollViewer> 
     <StackPanel> 
      <Grid> 
       <Label/> 
       <TextBox/> 
       <Label/> 
       <TextBox/> 
       <Label/> 
       <TextBox/> 
      </Grid> 
      <DataGrid/> 
     </StackPanel> 
    </ScrollViewer> 
</Window> 

Требование

1) Datagrid должны занимать все доступное пространство в окне.

2) Я хочу показать ScrollViewer только в том случае, если нет места для размещения полей ввода. enter image description here

3) Я хочу, чтобы показать DataGridScrollViewer только если есть достаточно мест, чтобы вместить все входные данные, поданные в окне, но не достаточно мест, чтобы вместить все столбцы/строки в DataGrid. enter image description here

4) Я хочу, чтобы показать, как ScrollViewer сек, если нет достаточно мест для размещения полого ввода и thecolumns/строк в DataGrid.

enter image description here

Я перепробовал много возможных путей, но я не смог включить ScrollViewer в DataGrid. Может ли кто-нибудь помочь мне преодолеть эту проблему. Предоставление образца кода XAML будет высоко оценен !.

ответ

0

Вместо прямого добавления datagrid к вашей основной сетке. Закройте свой Datagrid с помощью scrollviewer и сетки. Сделайте сетку размером вашего datagrid.
Пример: -.

<Window> 
    <ScrollViewer> 
     <StackPanel> 
      <Grid> 
       <Label/> 
       <TextBox/> 
       <Label/> 
       <TextBox/> 
       <Label/> 
       <TextBox/> 
      </Grid> 
      <Grid> 
       <ScrollViewer> 
       <DataGrid/> 
       </ScrollViewer> 
      </Grid> 
     </StackPanel> 
    </ScrollViewer> 

+0

@Beson Я не хочу, чтобы приложить DataGrid с ScrollViewer, мне нужно активировать builin скроллбары DataGrid вместо этого. – Rahul

Смежные вопросы