Vài ngày trước, DevExpress đã phát hành bản xem trước phiên bản v20.2 của mình. Trong bài đăng này, chúng tôi muốn tóm tắt các tính năng mới dự kiến sẽ cung cấp cho WinForms Layout/Data Layout Control trong chu kỳ phát hành v20.2 sắp tới.
Đánh dấu các phần tử không thể thay đổi kích thước
Nếu bạn đã sử dụng DevExpress WinForms Layout Control, bạn biết rằng nó cung cấp các tùy chọn tùy chỉnh bố cục gần như không giới hạn nhưng tính linh hoạt này phải tốn phí, vì kiểm soát yêu cầu bạn chỉ định nhiều cài đặt – cài đặt có thể xung đột với nhau.
Nếu bạn đã từng cố gắng thay đổi kích thước một mục bố cục và không thể tìm ra lý do tại sao nó vẫn không xê dịch, bạn sẽ thích cải tiến nhỏ trong phiên bản này. Với v20.2, biểu mẫu tùy chỉnh thời gian thiết kế và thời gian chạy, tự động đánh dấu các mục đã đạt đến kích thước tối thiểu / tối đa (và do đó không thể thay đổi kích thước thêm nữa).
Trong hình trên, không thể phóng to “Contact Title” vì TextEdit lân cận (“Contact Name”) đã đạt đến chiều rộng tối thiểu. Điểm nổi bật màu hồng cho phép bạn nhanh chóng xác định mục đang ảnh hưởng đến hoạt động thay đổi kích thước.
Nếu bạn muốn giới hạn kích thước phần tử, chúng tôi khuyên bạn nên sử dụng thuộc tính Control.MinimumSize và Control.MaximumSize tiêu chuẩn cho các điều khiển được lưu trữ bên trong các mục này. Bạn cũng có thể đặt SizeConstraints thành “Custom” và giới hạn kích thước của toàn bộ Layout Item, nhưng chúng tôi không khuyến nghị phương pháp này.
Đầu tiên, nó kém linh hoạt hơn – nó yêu cầu bạn đặt cả giới hạn chiều rộng và chiều cao, trong khi các thuộc tính tiêu chuẩn cho phép bạn chỉ giới hạn một thứ để kiểm soát.
Thứ hai, cách tiếp cận này có thể dẫn đến kết quả không mong muốn nếu văn bản Mục bố cục thay đổi (ví dụ: khi bạn bản địa hóa một ứng dụng sang ngôn ngữ khác). Chúng tôi đã tạo một bài viết trong Knowledge Base thảo luận sâu hơn về vấn đề này (logic tính toán kích thước được sử dụng trong Layout Control) và giải thích cách giải quyết các tình huống sử dụng phổ biến / yêu cầu của khách hàng: DevExpress WinForms Cheat Sheet – LayoutControl Resizing Mechanism.
API mới trong Data Layout Control
Data Layout Control là phiên bản nhận biết dữ liệu của Layout Control tiêu chuẩn của chúng tôi. Nó tự động xây dựng một bố cục dựa trên nguồn dữ liệu của bạn và hiển thị bản ghi nguồn dữ liệu đầu tiên. Để hiển thị giá trị của các bản ghi khác, các phiên bản trước yêu cầu bạn triển khai một trình điều hướng dữ liệu tùy chỉnh. Trong v20.2, bạn sẽ có thể sử dụng API điều khiển bố cục dữ liệu được nhúng để điều hướng qua các mục dữ liệu.
CurrentRecordPosition – gán chỉ mục hàng dữ liệu cho thuộc tính này để hiển thị các giá trị của hàng này trong WinForms Data Layout Control;
CurrentRecord – trả về một đối tượng (ví dụ: DataRow) có các giá trị hiện được hiển thị trong Data Layout Control;
GetCurrentRecordFieldValue (string fieldName) – cho phép bạn truy xuất giá trị của ô thuộc hàng hiện tại và cột nguồn dữ liệu cụ thể;
SetCurrentRecordFieldValue (string fieldName, object value) – cho phép bạn chỉnh sửa các bản ghi nguồn dữ liệu;
RecordCount – trả về tổng số bản ghi nguồn dữ liệu.
Tất cả các phương thức được triển khai cho lớp DataLayoutControl.
Hyperlink Support
Gần đây, chúng tôi đã thêm hỗ trợ cho các thẻ HTML (bao gồm cả hình ảnh HTML) trong cả phụ đề Layout Item và Layout Group. Điều này có nghĩa là bây giờ bạn có thể thêm hyperlink vào các chú thích này.
Để phản hồi các nhấp chuột vào siêu liên kết, hãy xử lý sự kiện LayoutControl.HyperlinkClick. Sự kiện này là một điểm vào duy nhất cho bất kỳ siêu liên kết nào được nhấp và tham số “e.Item” của sự kiện cho phép bạn xác định Layout Itemnào đã kích hoạt sự kiện.
Cài đặt Hiển thị Row và Column trong Table Layout Mode
Các đối tượng ColumnDefinition và RowDefinition cho Table Layout Mode hiện bao gồm thuộc tính Visible. Các cột hoặc hàng ẩn được ẩn cùng với các Layout Items của chúng. Nếu một mục kéo dài nhiều hàng hoặc nhiều cột và bạn ẩn một trong số chúng, thì mục đó sẽ giảm kích thước nhưng vẫn hiển thị.
Advanced Serialization Options
Gần đây, chúng tôi đã nhận được phiếu hỗ trợ của Support Center mà tác giả đã lưu bố cục biểu mẫu vào tệp và so sánh chúng trong v18.1.7 và v19.2.7. Hóa ra, kích thước của những tệp này đã tăng 30-40% vì Layout Control đã tuần tự hóa nhiều thuộc tính của nó hơn (ví dụ: cài đặt Giao diện). Trong v20.2, bạn sẽ có thể sử dụng thuộc tính LayoutControl.OptionsSerialization để chọn cài đặt Layout Controls để lưu vào tệp.
Thuộc tính này hiển thị các tùy chọn Boolean sau:
- StoreAppearance
- StoreSpaceOptions
- StoreEnabledState
- StoreText
- StorePrintOptions
- DiscardOldItems