This article has been localized into Vietnamese by the community.
Mở đầu cho chương WPF panels
Panel là một trong những loại control quan trọng nhất của WPF. Chúng hoạt động như các containers cho các control khác và kiểm soát bố cục của các cửa sổ/trang của bạn. Vì một cửa sổ chỉ có thể chứa MỘT control con, nên một panel thường được sử dụng để phân chia không gian thành các khu vực, trong đó mỗi khu vực có thể chứa một control hoặc một panel khác (tất nhiên cũng là một control).
Các panel có nhiều loại khác nhau, với mỗi loại có cách xử lý layout và các child control riêng. Do đó, chọn panel phù hợp là điều cần thiết để có được behavior và layout bạn muốn, và đặc biệt là khi bắt đầu công việc với WPF, đây có thể là một việc khó khăn. Phần tiếp theo sẽ mô tả từng panel một cách nhanh chóng và cho bạn biết khi nào nên sử dụng nó. Sau đó, chuyển sang các chương tiếp theo, trong đó mỗi panel sẽ được mô tả một cách chi tiết.
Canvas
Một panel đơn giản, bắt chước cách làm việc của WinForms. Nó cho phép bạn gán tọa độ cụ thể cho từng child control, cho bạn toàn quyền điều khiển layout. Mặc dù vậy, điều này không linh hoạt lắm, bởi vì bạn phải tự di chuyển các child control xung quanh và đảm bảo rằng chúng căn chỉnh theo cách bạn muốn. Sử dụng nó (chỉ) khi bạn muốn kiểm soát hoàn toàn các vị trí của child control
WrapPanel
WrapPanel sẽ định vị từng child control của nó bên cạnh nhau, theo chiều ngang (mặc định) hoặc theo chiều dọc, cho đến khi không còn chỗ, nó sẽ chuyến đến dòng tiếp theo và sau đó tiếp tục. Sử dụng nó khi bạn muốn một list các control theo chiều dọc hoặc ngang tự động wrap khi không còn chỗ.
StackPanel
StackPanel hoạt động giống như WrapPanel, nhưng thay vì đến dòng tiếp theo nếu child control chiếm quá nhiều chỗ, nó chỉ đơn giản là tự mở rộng, nếu có thể. Giống như WrapPanel, hướng có thể là ngang hoặc dọc, nhưng thay vì điều chỉnh chiều rộng hoặc chiều cao của các điều khiển con dựa trên item lớn nhất, mỗi item được kéo dài để chiếm toàn bộ chiều rộng hoặc chiều cao. Sử dụng StackPanel khi bạn muốn có một danh sách các control chiếm hết phòng có sẵn mà không cần wrap.
DockPanel
DockPanel cho phép bạn gắn các child control lên trên cùng, dưới cùng, bên trái hoặc bên phải. Theo mặc định,control cuối cùng, nếu không được cung cấp vị trí dock cụ thể, sẽ lấp đầy khoảng trống còn lại. Bạn có thể đạt được điều tương tự với bảng Grid, nhưng đối với các tình huống đơn giản hơn, DockPanel sẽ dễ sử dụng hơn. Sử dụng DockPanel bất cứ khi nào bạn cần gắn một hoặc một số control vào một trong các bên, như để chia cửa sổ thành các khu vực cụ thể.
Grid
Grid có lẽ là phức tạp nhất trong các loại panel. Một grid có thể chứa nhiều hàng và cột. Bạn xác định chiều cao cho mỗi hàng và chiều rộng cho mỗi cột, theo số lượng pixel tuyệt đối, theo tỷ lệ phần trăm của không gian có sẵn hoặc dưới dạng tự động, trong đó hàng hoặc cột sẽ tự động điều chỉnh kích thước của nó tùy thuộc vào Nội dung. Sử dụng Lưới khi các panel khác không thực hiện được công việc đó, ví dụ: khi bạn cần nhiều cột và thường kết hợp với các bảng khác.
UniformGrid
UniformGrid giống như Grid, với khả năng có nhiều hàng và cột, nhưng có một điểm khác biệt quan trọng: Tất cả các hàng và cột sẽ có cùng kích thước! Sử dụng điều này khi bạn cần grid mà không cần chỉ định các kích thước khác nhau cho các hàng và cột.