2012-01-10 2 views
2

Я пытаюсь загрузить данные в datagrid, но у меня есть кошмар с размерами. Кажется, что мой datagrid занимает столько места, сколько захочет. Я хочу, чтобы он загружался в текущий размер и отображал полосы прокрутки, если это необходимо.DataGrid Sizing Issue

Не могли бы вы объяснить, как работает калибровка.

Пример:

<Grid Name="MainUI" Height="Auto" Width="Auto"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"></RowDefinition> 
     <RowDefinition Height="Auto"></RowDefinition> 
</Grid.RowDefinitions> 

<Grid Name="MainGrid" Grid.Row="1" VerticalAlignment="Top" Height="Auto" Width="Auto"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto"></RowDefinition> 
      <RowDefinition Height="Auto"></RowDefinition> 
     </Grid.RowDefinitions> 

    <TabControl TabStripPlacement="Bottom" Name="Main_Tab" VerticalAlignment="Top" Visibility="Visible" /> 
</Grid> 

</Grid> 

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

Дантагрид itemTab не имеет размера, когда я загружаю его.

Благодаря

+0

как вы устанавливаете размер сетки? вы можете добавить код – jcvegan

+0

К сожалению, добавлен сегмент выше. – user101010101

+3

Я до сих пор не вижу ссылки на datagrid. Можете ли вы показать код, который его создает? –

ответ

3

Установка Height/Width к Auto означает, что контроль должен занимать столько места, сколько ему нужно. Это означает, что если для управления требуется больше места, чем доступно в пользовательском интерфейсе, ему разрешено растягивать родительский элемент управления и занимать столько места, сколько ему нужно.

Снимите Height="Auto" и Width="Auto" решить проблему

Если он по-прежнему дает вам неприятности, попробуйте установить HorizontalAlignment и VerticalAlignment в Stretch. Это приведет к тому, что элемент управления будет расти или сокращаться, чтобы охватить все пространство, доступное для него, однако он не расширит контейнер, в котором он находится, чтобы заняться дополнительным пространством.