2012-01-16 3 views
0

У меня есть довольно большой DataGrid, который не вписывается в окно:DataGrid - как сделать видимыми полосы прокрутки?

<DataGrid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="17" AutoGenerateColumns="True" Name="dataGrid1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding DataList}" IsReadOnly="True" SelectedItem="{Binding SelectedStrategy, Mode=TwoWay}" AutoGeneratingColumn="DG_AutoGeneratingColumn"> 
     <i:Interaction.Triggers> 
      <i:EventTrigger EventName="MouseDoubleClick"> 
       <i:InvokeCommandAction Command="{Binding OpenStrategyViewCommand}" /> 
      </i:EventTrigger> 
     </i:Interaction.Triggers> 
    </DataGrid> 

Проблема заключается в том:

  • вертикальная прокрутка не существует
  • горизонтальная прокрутка в нижней части DataGrid , но не в нижней части окна

Поскольку нет вертикальной прокрутки, невозможно прокрутить DataGrid на дно горизонтальная прокрутка.

В обоих измерениях (по вертикали и по горизонтали) DataGrid больше, чем окно

Я хочу иметь две полосы прокрутки в DataGrid, но они всегда должны быть видны. Как это сделать?

ответ

2

Поскольку нет вертикальной прокрутки, невозможно прокручивать DataGrid на дно, где горизонтальная прокрутка.

Похоже, что вы не настроили свой размер правильно, но я не настолько большой в WPF DataGrid, поэтому я не могу точно сказать, в чем дело, к сожалению.

Для всегда отображаются полосы прокрутки, используйте следующие два атрибута:

<DataGrid 
HorizontalScrollBarVisibility="Visible" 
VerticalScrollBarVisibility="Visible" > 
+1

ok теперь полоса прокрутки видима, но она не позволяет прокручивать! то есть он «затенен», даже если линии не подходят на экране – javapowered

+0

Я предлагаю вам попробовать добавить scrollviewer, см. ответ ShadeOfGrey. Удачи! –

0

Вы можете установить видимость обеих ScrollBars с VerticalScrollBarVisibility и Горизонтальная на вашем DataGrid, но я думаю, может быть, вы должны поставить сетку внутри ScrollViewer, как предложил Андерсон Холмстрём.

MSDN DataGrid Class

0

Добавить ScrollViewer вокруг DataGrid. Помогает вам контролировать размер datagrid, также как и другие плакаты, упомянутые HorizontalScrollBarVisibility = «Visible» VerticalScrollBarVisibility = «Visible» контролируют видимость полос прокрутки.

<ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible"> 
    <DataGrid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="17" AutoGenerateColumns="True" Name="dataGrid1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding DataList}" IsReadOnly="True" SelectedItem="{Binding SelectedStrategy, Mode=TwoWay}" AutoGeneratingColumn="DG_AutoGeneratingColumn"> 
     <i:Interaction.Triggers> 
      <i:EventTrigger EventName="MouseDoubleClick"> 
       <i:InvokeCommandAction Command="{Binding OpenStrategyViewCommand}" /> 
      </i:EventTrigger> 
     </i:Interaction.Triggers> 
    </DataGrid> 
</ScrollViewer> 
+0

Я могу видеть горизонтальную полосу прокрутки, но она не работает (всегда выделена серым цветом, даже если datagrid не подходит на экране) – javapowered

+0

Можете ли вы добавить определения столбцов сетки и строки в вопрос? Я также хотел бы взглянуть на них. – ShadeOfGrey

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