Tôi đang gặp rất nhiều vấn đề với cách Silverlight để xử lý bố cục. Chủ yếu là, tôi không thể tìm thấy một cách để dự đoán kích thước bị chiếm bởi chuỗi trước khi chúng thực sự được rút ra. Trên iPhone, chúng tôi có một số phương pháp rất đơn giản cho phép chúng tôi xác định kích thước chuỗi sẽ chiếm trên màn hình dựa trên kích thước phông chữ, tùy chọn gói từ và chiều rộng và/hoặc chiều cao có sẵn. Nhưng với Silverlight, tôi không thể tìm ra cách để có kết quả nhất quán trên ứng dụng của mình.Silverlight: Cách dự đoán kích thước chuỗi?
Tôi hiện đang sử dụng ActuelHeight và ActualWidth của một phiên bản TextBlock nhưng nó mang lại cho tôi kết quả ngẫu nhiên. Ví dụ: tôi sử dụng mã sau ...
TextBlock proto = new TextBlock();
proto.Width = 456;
proto.TextWrapping = TextWrapping.Wrap;
proto.Text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
double h = proto.ActualHeight;
... h được đặt thành 66 pixel! Như bạn có thể đoán một mình, không có cách nào văn bản dài như vậy có thể vừa với hình chữ nhật rộng 456 pixel và cao 66 pixel. Và nó được xác nhận khi tôi thêm khối văn bản bên trong canvas, thiết lập kích thước của nó thành {456; 66} và kiểm tra ứng dụng: văn bản không vừa với khối văn bản!
Ai đó có thể giải thích cho tôi vấn đề nằm ở đâu và chỉ cho tôi cách nhất quán (và đáng tin cậy) để đo kích thước chuỗi?
Cảm ơn trước,
Eric.
Khi bạn thiết lập di chuyển tự động, bạn sẽ có thể xem tất cả các văn bản bằng cách di chuyển, vậy tại sao bạn muốn biết kích thước trong pixel? –