tôi muốn biết chiều cao của tất cả các mục của tôi StackPanel
.Stackpanel: Chiều cao so với ActualHeight so với ExtentHeight vs ViewportHeight vs DesiredSize vs RenderSize
sự khác biệt giữa là gì:
Height
- Gets hoặc đặt chiều cao đề nghị của nguyên tố này.ActualHeight
- Nhận chiều cao được hiển thị của phần tử này. (chỉ đọc)ExtentHeight
- Nhận giá trị chứa kích thước theo chiều dọc. (chỉ đọc)ViewportHeight
- Nhận giá trị chứa kích thước dọc của chế độ xem nội dung. (chỉ đọc)DesiredSize
- Lấy kích thước mà phần tử này được tính trong quá trình đo lường của quá trình bố cục. (chỉ đọc)RenderSize
- Gets (hoặc đặt, nhưng xem Chú thích) kích thước kết xuất cuối cùng của phần tử này.
Từ MSDN:
Height
Gets hoặc đặt chiều cao đề nghị của nguyên tố này.Giá trị thuộc tính:
Double
- Chiều cao của phần tử, trong đơn vị thiết bị độc lập (1/96 inch trên mỗi đơn vị).Chiều cao của phần tử, trong đơn vị thiết bị độc lập (1/96 inch trên mỗi đơn vị).
ActualHeight (readonly)
Gets chiều cao render của nguyên tố này.Giá trị thuộc tính:
Double
- Chiều cao của phần tử, dưới dạng giá trị trong đơn vị độc lập thiết bị (1/96 inch trên mỗi đơn vị).Thuộc tính này là giá trị được tính toán dựa trên các yếu tố đầu vào chiều cao khác và hệ thống bố cục. Giá trị được thiết lập bởi chính hệ thống bố trí, dựa trên một đường dẫn hiển thị thực tế và do đó có thể tụt hậu một chút so với giá trị được đặt của các thuộc tính như Height là cơ sở của thay đổi đầu vào.
Vì ActualHeight là một giá trị được tính toán, bạn nên lưu ý rằng có thể có nhiều thay đổi hoặc báo cáo gia tăng đối với nó do các hoạt động khác nhau của hệ thống bố trí. Hệ thống bố trí có thể được tính toán yêu cầu đo không gian cho các phần tử con, các ràng buộc bởi phần tử cha, v.v.
ExtentHeight (readonly)
Gets một giá trị có chứa các kích thước dọc của mức độ.Chiều cao tài sản:
Double
- Số đôi thể hiện kích thước theo chiều dọc.Giá trị trả lại được mô tả trong Thiết bị độc lập pixel.
ViewportHeight (readonly)
Gets một giá trị có chứa các kích thước dọc của khung nhìn của nội dung.Giá trị thuộc tính:
Double
- Đôi biểu thị kích thước dọc của chế độ xem nội dung.Giá trị trả lại được mô tả trong Thiết bị độc lập pixel.
DesiredSize (readonly)
Gets kích thước mà yếu tố này được tính toán trong biện pháp vượt qua của quá trình bố trí.Giá trị thuộc tính:
Size
- Kích thước được tính, kích thước này sẽ trở thành kích thước mong muốn cho thẻ sắp xếp.Giá trị được trả lại bởi thuộc tính này sẽ chỉ là phép đo hợp lệ nếu giá trị của thuộc tính IsMeasureValid là đúng. DesireSize thường được kiểm tra là một trong những yếu tố đo khi bạn thực hiện ghi đè hành vi bố trí như ArrangeOverride, MeasureOverride hoặc OnRender (trong trường hợp OnRender, bạn có thể kiểm tra RenderSize thay thế, nhưng điều này phụ thuộc vào việc triển khai của bạn). Tùy thuộc vào kịch bản, DesiredSize có thể được hoàn toàn tôn trọng bởi logic thực thi của bạn, các ràng buộc trên DesiredSize có thể được áp dụng, và các ràng buộc đó cũng có thể thay đổi các đặc tính khác của phần tử cha hoặc phần tử con. Ví dụ, một điều khiển hỗ trợ các vùng có thể cuộn (nhưng chọn không lấy được từ các điều khiển cấp khuôn khổ WPF đã cho phép các vùng có thể cuộn) có thể so sánh kích thước có sẵn với DesiredSize. Sau đó, điều khiển có thể thiết lập trạng thái bên trong đã bật thanh cuộn trong giao diện người dùng cho điều khiển đó. Hoặc, DesiredSize cũng có thể bị bỏ qua trong một số trường hợp nhất định.
RenderSize Gets render thức kích thước của nguyên tố này.
Giá trị thuộc tính:
Size
- Kích thước được hiển thị cho phần tử này.Thuộc tính này có thể được sử dụng để kiểm tra kích thước hiển thị có thể áp dụng trong phần ghi đè hệ thống bố cục như OnRender hoặc GetLayoutClip.
Một trường hợp phổ biến hơn là xử lý sự kiện SizeChanged với ghi đè xử lý lớp hoặc sự kiện OnRenderSizeChanged.
Trong trường hợp của tôi, tôi muốn biết mong muốn chiều cao của tất cả các mục trong StackPanel
.
Nói cách khác: tôi muốn biết chiều cao của tất cả các mục trong StackPanel (trước khi vẽ), và nếu họ tràn bảng điều khiển, tôi sẽ
- xóa
- teo
- quy mô
- điều chỉnh
mục để đảm bảo chúng phù hợp trong StackPanel.
Có nghĩa là tôi có thể muốn có được mong muốn chiều cao (DesiredSize ExtentHeight?) Trong một sự kiện thay đổi kích thước (SizeChangedLayoutUpdated?) - trước khi bất kỳ bản vẽ xảy ra (do đó, nó nhanh hơn).
Hầu hết các thuộc tính này đều trả về 0; vì vậy rõ ràng là có một số hiểu biết về những gì các thuộc tính này có nghĩa là tôi không biết và không được giải thích trong tài liệu.