Установить столбец сетки / ширину строки / высоту динамически - PullRequest
17 голосов
/ 15 марта 2012

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

var col = new ColumnDefinition();
col.Width = new System.Windows.GridLength(200);
grid1.ColumnDefinitions.Add(col);

Это даст XAML

<Grid.ColumnDefinitions>
     <ColumnDefinition Width="200"></ColumnDefinition>
</Grid.ColumnDefinitions>

Но мне нужно использовать * или вопросительный знак, т. Е.

<Grid.ColumnDefinitions>
     <ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>

Но WidthValue не поддерживает * или вопросительный знак a при создании из кода позади?

Ответы [ 3 ]

26 голосов
/ 15 марта 2012

Вы можете указать это так:

Для столбцов с автоматическими размерами:

GridLength.Auto

Для столбцов звездного размера:

new GridLength(1,GridUnitType.Star)
6 голосов
/ 27 февраля 2015

Существует 3 типа установки ширины для сетки. Определение столбца:

Для столбца в процентах:

 yourGrid.ColumnDefinitions[0].Width = new GridLength(1, GridUnitType.Star); 

В xaml:

<ColumnDefinition Width="1*"/>

Для столбца пикселей

yourGrid.ColumnDefinitions[0].Width = new GridLength(10, GridUnitType.Pixel);
yourGrid.ColumnDefinitions[0].Width = new GridLength(10); 

В xaml:

<ColumnDefinition Width="10"/>

Для автоматического столбца

yourGrid.ColumnDefinitions[0].Width = GridLength.Auto;

Вxaml:

<ColumnDefinition Width="Auto"/>

Надеюсь, это поможет!

6 голосов
/ 15 марта 2012

Я думаю, что это может помочь:

для автоматического столбца:

ColumnDefinition cd = new ColumnDefinition();
cd.Width = GridLength.Auto;

или для длины пропорциональной сетки:

ColumnDefinition cd = new ColumnDefinition();
cd.Width = new GridLength(1, GridUnitType.Star);

или посмотрите на: http://msdn.microsoft.com/en-us/library/system.windows.gridlength.aspx и http://msdn.microsoft.com/en-us/library/system.windows.gridunittype.aspx

Гриз Шоунбург

...