Подтвердить что ты не робот

Ширина сетки/Ширина строки/Высота

Мне нужно динамически создавать сетку 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 при создании из кода позади?

4b9b3361

Ответ 1

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

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

GridLength.Auto

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

new GridLength(1,GridUnitType.Star)

Ответ 2

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

для автоматической колонки:

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

Greez Shounbourgh

Ответ 3

Существует три типа установки Width to Grid ColumnDefinitions:

Для столбца%:

 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"/>

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