2013-10-03 14 views
9

Tôi muốn tạo một phần tử giao diện người dùng hoạt động gần giống như hộp văn bản đầu vào của ứng dụng SMS của WP gốc.Windows Phone Multi Line Text Box

Về cơ bản nó nên

  • bắt đầu như một hộp văn bản dòng đơn
  • khi văn bản của tôi đạt đến sự kết thúc của dòng đầu tiên, cần mở rộng một dòng để bao gồm nó
  • này cần phải đi đến Độ cao tối đa của 5 dòng (trong đó một dòng = giá trị Độ cao của hộp văn bản)
  • khi văn bản của tôi yêu cầu nhiều hơn 5 dòng, hộp văn bản sẽ ngừng mở rộng và thanh cuộn dọc sẽ xuất hiện

Bất kỳ đề xuất nào về cách tôi có thể thực hiện việc này? Tôi không muốn sử dụng các sự kiện để xem có bao nhiêu văn bản tôi đã nhập và mở rộng/nén hộp văn bản dựa trên đó hoặc tạo một phần tử giao diện người dùng mới từ đầu.

Nếu được, tôi có quyền truy cập vào Điều khiển RAD của Telerik cho Windows Phone (RadTextBox).

Trả lời

20

Bạn đã cố sử dụng thuộc tính FrameworkElement.MaxHeight? Đánh dấu sẽ tương tự như:

<TextBox TextWrapping="Wrap" AcceptsReturn="True" MaxHeight="200" /> 

Giá trị cho chiều cao tối đa chỉ đơn giản là ví dụ và có thể không đáp ứng các nhu cầu cụ thể của bạn.

Lưu ý: Như đã đề cập trong các nhận xét bên dưới, hãy chắc chắn xóa bất kỳ giá trị nào được chỉ định cho Chiều cao. Việc khai báo sẽ hạn chế các yếu tố đến chiều cao đó ở tất cả các lần.

+0

Không sửa đổi chiều cao thực của phần tử - bất kể có bao nhiêu ký tự tôi nhập, hộp văn bản vẫn được hiển thị dưới dạng hộp văn bản một dòng. – drl

+2

@drl Chắc chắn bạn không có giá trị được chỉ định cho Chiều cao. Điều đó sẽ hạn chế các yếu tố đến chiều cao đó mọi lúc. Thử nghiệm với giá trị MaxHeight là 200 vì đó là khoảng năm dòng. – lsuarez

+0

Nó hoạt động hoàn hảo khi tôi đưa ra chiều cao rõ ràng! Nó thậm chí còn hoạt động để thu nhỏ hộp văn bản khi tôi xóa văn bản. Nghiêm túc cảm ơn bạn! – drl