WPF - Cây nguyên tố
Có nhiều công nghệ mà các phần tử và thành phần được sắp xếp theo cấu trúc cây để người lập trình có thể dễ dàng xử lý đối tượng và thay đổi hành vi của một ứng dụng. Windows Presentation Foundation (WPF) có cấu trúc cây toàn diện dưới dạng các đối tượng. Trong WPF, có hai cách để khái niệm hóa một cây đối tượng hoàn chỉnh:
- Cấu trúc cây lôgic
- Cấu trúc cây trực quan
Với sự trợ giúp của các cấu trúc cây này, bạn có thể dễ dàng tạo và xác định mối quan hệ giữa các phần tử UI. Hầu hết, các nhà phát triển và nhà thiết kế WPF sử dụng ngôn ngữ thủ tục để tạo ứng dụng hoặc thiết kế phần giao diện người dùng của ứng dụng trong XAML, lưu ý đến cấu trúc cây đối tượng.
Cấu trúc cây lôgic
Trong các ứng dụng WPF, cấu trúc của các phần tử UI trong XAML thể hiện cấu trúc cây logic. Trong XAML, các yếu tố cơ bản của UI được nhà phát triển khai báo. Cây logic trong WPF định nghĩa như sau:
- Thuộc tính phụ thuộc
- Tài nguyên tĩnh và động
- Ràng buộc các yếu tố trên tên của nó, v.v.
Hãy xem ví dụ sau, trong đó một nút và một hộp danh sách được tạo.
<Window x:Class = "WPFElementsTree.MainWindow"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
Title = "MainWindow" Height = "350" Width = "604">
<StackPanel>
<Button x:Name = "button" Height = "30" Width = "70" Content = "OK" Margin = "20" />
<ListBox x:Name = "listBox" Height = "100" Width = "100" Margin = "20">
<ListBoxItem Content = "Item 1" />
<ListBoxItem Content = "Item 2" />
<ListBoxItem Content = "Item 3" />
</ListBox>
</StackPanel>
</Window>
Nếu bạn nhìn vào mã XAML, bạn sẽ quan sát một cấu trúc cây, tức là nút gốc là Window và bên trong nút gốc, chỉ có một nút con, đó là StackPanel. Nhưng StackPanel chứa hai phần tử con, nút và hộp danh sách. Hộp danh sách có thêm ba mục hộp danh sách con.
Cấu trúc cây trực quan
Trong WPF, khái niệm cây trực quan mô tả cấu trúc của các đối tượng trực quan, được biểu diễn bởi Lớp cơ sở trực quan. Nó biểu thị tất cả các phần tử giao diện người dùng được hiển thị trên màn hình đầu ra.
Khi một lập trình viên muốn tạo một khuôn mẫu cho một điều khiển cụ thể, anh ta thực sự đang hiển thị cây trực quan của điều khiển đó. Cây trực quan cũng rất hữu ích cho những ai muốn vẽ các điều khiển cấp thấp hơn vì lý do hiệu suất và tối ưu hóa.
Trong các ứng dụng WPF, cây trực quan được sử dụng cho -
- Vẽ các đối tượng trực quan.
- Kết xuất các bố cục.
- Các sự kiện được định tuyến chủ yếu đi dọc theo cây trực quan, không phải cây logic.
Để xem cây trực quan của ứng dụng đơn giản ở trên có chứa một nút và một hộp danh sách, hãy biên dịch và thực thi mã XAML và bạn sẽ thấy cửa sổ sau.
Khi ứng dụng đang chạy, bạn có thể thấy cây trực quan của ứng dụng đang chạy trong cửa sổ Live Visual Tree hiển thị hệ thống phân cấp hoàn chỉnh của ứng dụng này, như được hiển thị bên dưới.
Cây trực quan thường là một tập hợp siêu của cây logic. Bạn có thể thấy ở đây rằng tất cả các yếu tố logic cũng có trong cây trực quan. Vì vậy, hai cây này thực sự chỉ là hai khung nhìn khác nhau của cùng một tập hợp các đối tượng tạo nên giao diện người dùng.
Cây lôgic để lại rất nhiều chi tiết cho phép bạn tập trung vào cấu trúc cốt lõi của giao diện người dùng và bỏ qua các chi tiết về cách trình bày chính xác của nó.
Cây logic là những gì bạn sử dụng để tạo cấu trúc cơ bản của giao diện người dùng.
Cây trực quan sẽ được quan tâm nếu bạn đang tập trung vào bài thuyết trình. Ví dụ: nếu bạn muốn tùy chỉnh giao diện của bất kỳ phần tử giao diện người dùng nào, bạn sẽ cần sử dụng cây trực quan.