2009-07-22 29 views
59

Tôi sử dụng Height = "*" một chút để có nghĩa là chiều cao của hàng cuối cùng phải điền vào đáy của lưới.Chiều cao RowDefinition = "10 *" có nghĩa là gì trong lưới XAML?

Nhưng "10 *" có nghĩa là gì?

<Grid Name="mainGrid"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="100" /> 
     <RowDefinition Height="40" /> 
     <RowDefinition Height="10*" /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="200" /> 
     <ColumnDefinition Width="*" /> 
    </Grid.ColumnDefinitions> 
</Grid> 

Trả lời

93

"*" là viết tắt của "1*". Đó là một tỷ lệ, vì vậy nếu bạn có hai hàng, một với "*" và một với "10*", trước đây có 1/11 phần tử khả dụng và thứ hai chiếm 10/11 không gian. Ví dụ:

Trong ví dụ trên, "10*" là không cần thiết - "*" sẽ có ý nghĩa hơn vì chỉ có một hàng sử dụng kích thước dựa trên tỷ lệ, vì vậy bất kỳ tỷ lệ nào sẽ tương đương với 100% không gian có sẵn.

+2

Câu trả lời rất hữu ích. Ví dụ giới hạn của tài liệu chính thức không khai báo rõ ràng '*' để chỉ ra khoảng cách dựa trên tỷ lệ. – ford

+0

@ford, nhưng bạn cần thay đổi phiên bản thành silverlight [link] http://msdn.microsoft.com/en-us/library/system.windows.controls.grid.rowdefinitions (v = vs.95). aspx –

19

Tôi tìm thấy thông tin bên dưới từ Christian Mosers hữu ích vì Tự động và Kích thước cố định trên các hàng hoặc cột khác sẽ ảnh hưởng đến hành vi của kích thước *. Xem http://wpftutorial.net/GridLayout.html


Cố định Fixed size của các đơn vị logic (1/96 inch)

Auto Đưa càng nhiều không gian khi cần thiết bởi sự kiểm soát chứa

sao (*) Mất nhiều không gian nhất có sẵn (sau khi điền tất cả các cột có kích thước tự động và cố định), chuyên nghiệp được phân chia một phần trên tất cả các cột có kích thước ngôi sao. Vì vậy, 3 */5 * có nghĩa là giống như 30 */50 *. Hãy nhớ rằng việc định cỡ kích thước không hoạt động nếu kích thước lưới được tính dựa trên nội dung của nó.

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="28" /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto" /> 
     <ColumnDefinition Width="200" /> 
    </Grid.ColumnDefinitions> 
</Grid> 
-12

Trong XAML * được sử dụng cho tỷ lệ phần trăm (%) để 10* nghĩa 10% tổng Grid. Hàng sẽ sử dụng 10% lưới điện

+2

Tôi sẽ bỏ phiếu để xóa câu trả lời này, nếu có thể, để tránh bất cứ ai nhìn thấy điều này. – GEEF

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