2012-03-15 15 views
13

Potrzebuję dynamicznie tworzyć siatki WPF z kodu za. To będzie w porządku i mogę to zrobić tak, że mogę ustawić szerokości treści, ale to, co trzeba zrobić, to ustawić je tak, że gdy rozmiar okna kontrole są re wielkości dynamicznieUstaw kolumnę siatki/szerokość wiersza/wysokość dynamicznie

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

To będzie produkować XAML

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

Ale potrzebuję użyć znaku * lub znaku zapytania, tj.

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

Ale WidthValue nie obsługuje znaku * lub znaku zapytania a podczas tworzenia z kodu?

Odpowiedz

24

Można określić ją tak:

Na auto wielkości kolumn:

GridLength.Auto 

Star wielkości kolumn:

new GridLength(1,GridUnitType.Star) 
3

Jest 3 rodzaje ustawień Width do siatki ColumnDefinitions:

Dla Procentowy Kolumna:

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

w XAML:

<ColumnDefinition Width="1*"/> 

Pixel Kolumna

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

w XAML:

<ColumnDefinition Width="10"/> 

Dla Auto Kolumna

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

w XAML:

<ColumnDefinition Width="Auto"/> 

Nadzieję, że to pomaga!

Powiązane problemy