2012-03-15 44 views
13

Tôi cần tạo một mạng lưới WPF động từ mã phía sau. Điều này sẽ ổn và tôi có thể làm điều đó vì vậy mà tôi thiết lập độ rộng nội dung nhưng những gì tôi cần làm là thiết lập chúng để khi tôi thay đổi kích thước cửa sổ điều khiển được tái định kích thước độngĐặt cột lưới/Chiều rộng hàng/Chiều cao động

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

Điều này sẽ tạo XAML

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

Nhưng điều tôi cần là sử dụng dấu * hoặc dấu chấm hỏi.

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

Nhưng WidthValue không hỗ trợ dấu * hoặc câu hỏi khi tạo từ mã phía sau?

Trả lời

24

Bạn có thể xác định nó như thế này:

Đối với cột có kích thước ô tô:

GridLength.Auto 

Đối với cột có kích thước sao:

new GridLength(1,GridUnitType.Star) 
3

Có 3 loại thiết Width to Grid ColumnDefinitions:

Đối Tỷ Cột:

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

Trong XAML:

<ColumnDefinition Width="1*"/> 

Đối với Pixel Cột

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

Trong XAML:

<ColumnDefinition Width="10"/> 

Đối với Auto Cột

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

Trong XAML:

<ColumnDefinition Width="Auto"/> 

Hy vọng nó sẽ giúp!

Các vấn đề liên quan