2013-02-18 41 views
6

Điều khiển lưới WPF với 3 hàng và 3 cột. Chiều cao của hàng được đề cập được đặt thành Tự động. Trong hai ô đầu tiên, tôi có hai điều khiển với chiều cao động. Trong ô thứ ba, tôi có một điều khiển khác mà tôi muốn được tự động thiết lập để kéo dài trong ô lưới. Tôi đã thử VerticalAlignment="Stretch", nhưng điều đó chỉ đơn giản là đặt Grid Row Height bằng với chiều cao của điều khiển. lựa chọn của tôi là gì đây?WPF: Đặt chiều cao kiểm soát để điền lưới hàng Chiều cao

Trả lời

7

Không chắc chắn loại điều khiển bạn đang sử dụng trong Ô 3, nhưng hầu hết các điều khiển WPF sẽ tự động kéo dài để vừa với ô lưới. Chiều cao hàng của lưới của bạn sẽ được đặt theo chiều cao của các điều khiển trong Ô 1 và 2.

Nếu bạn đang sử dụng một loại điều khiển tùy chỉnh nào đó, hành vi mặc định cho chiều cao khác nhau, bạn có thể đặt Height="Auto".

Nếu điều đó không làm việc, hoặc, bạn có thể làm một dữ liệu ràng buộc để có được chiều cao thực tế của kiểm soát trong một trong hai tế bào 1 hoặc 2. Đặt Height tài sản của kiểm soát của bạn trên tạp chí Cell 3 như sau:

Height="{Binding ActualHeight, ElementName=MyControlNameFromCell1, Mode=OneWay}" 

EDIT

một cách khác mà có thể mạnh mẽ hơn là để làm một ràng buộc cho chiều cao của dòng dữ liệu. Vì vậy, thay vì sử dụng "Auto" cho chiều cao của hàng, hãy sử dụng ràng buộc dữ liệu được hiển thị ở trên.

+0

Cảm ơn. Điều khiển trong ô 3 là một TabControl, trong khi ô 1 và ô 2 có lưới trong chúng. Vấn đề là nội dung của TabControl (và do đó TableControl chính nó) là lớn hơn cả lưới, do đó, toàn bộ hàng có chiều cao của TabControl. Những gì tôi muốn thay vì là TabControl để có chiều cao của lưới (lớn hơn một trong số họ) và giới thiệu một thanh cuộn bên trong chính nó để lộ tất cả các nội dung của nó. Tôi đã thêm một ScrollViewer trong TabControl quá, nhưng kể từ khi TabControl trở nên đủ lớn để hiển thị tất cả các nội dung của nó, ScrollViewer vẫn vô ích. – dotNET

+0

Ràng buộc cũng dường như không hoạt động. – dotNET

+0

Cập nhật. Ràng buộc thực sự không hoạt động. Vấn đề là tôi đã có Margin = "3" trong thuộc tính của TabControl bằng cách nào đó khiến nó trở nên lớn như nội dung của nó. Loại bỏ Margin và thêm chiều cao ràng buộc bạn đã đề cập ở trên dường như làm các trick. – dotNET

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