Nếu bạn có một nhãn và bạn muốn có quyền kiểm soát phù hợp theo chiều dọc, bạn có thể làm như sau:
MyLabel.MaximumSize = new Size(MyLabel.Width, 0)
MyLabel.Height = MyLabel.PreferredHeight
MyLabel.MaximumSize = new Size(0, 0)
này rất hữu ích ví dụ nếu bạn có một nhãn trong một container có thể được thay đổi kích cỡ . Trong trường hợp đó, bạn có thể đặt thuộc tính Anchor
để nhãn được định lại kích thước theo chiều ngang nhưng không theo chiều dọc và trong sự kiện thay đổi kích thước, bạn có thể vừa với chiều cao bằng phương pháp ở trên.
Để tránh phù hợp dọc để được hiểu như là một sự kiện thay đổi kích thước mới, bạn có thể sử dụng một boolean:
bool _inVerticalFit = false;
Và trong trường hợp thay đổi kích thước:
if (_inVerticalFit) return;
_inVerticalFit = true;
MyLabel.MaximumSize = new Size(MyLabel.Width, 0)
MyLabel.Height = MyLabel.PreferredHeight
MyLabel.MaximumSize = new Size(0, 0)
_inVerticalFit = false;
+1. Đơn giản hơn nhiều so với gợi ý của tôi. – Brian
Được chọn làm câu trả lời vì sự đơn giản, câu trả lời của Brian cũng hoàn toàn tốt, nhưng câu trả lời này dễ hiểu và dễ bảo trì hơn. – Malfist
Nếu tôi cần chiều rộng chất lỏng thì sao? – Robin