2011-08-12 16 views
7

Tôi có một mục FormattedText. Tôi có flowdirection thiết lập để RightToLeft, và tôi không chắc chắn như thế nào nó hoạt động. Nó thay đổi dây của tôi thực sự không nhất quán.WPF: FlowDirection.RightToLeft thay đổi chuỗi như thế nào?

Tôi tưởng tượng rằng nó sẽ chỉ lấy một chuỗi và hiển thị ngược lại (hoặc bằng ký tự, hoặc bằng từ), nhưng trong thử nghiệm nó có những điều kỳ lạ hơn.

============================================== ====

ví dụ,

the string "90%", is displayed as "%90" 

Tại sao dấu% đi từ ngày kết thúc để bắt đầu?

the string "12 34 56 this is my (string)" 
is displayed as "(this is my (string 56 34 12" 

tại sao các con số đi đến cùng và một giá thầu chuyển sang hướng bắt đầu và chuyển hướng?

the string "this is a string" 
is displayed as "this is a string" 

tại sao không có gì xảy ra trong trường hợp này ??

============================================== ====

formattedText của tôi trông như thế này:

FormattedText sectionNum = new FormattedText(
    sectNum, 
    CultureInfo.CurrentCulture, 
    FlowDirection.RightToLeft, 
    new Typeface("Verdana"), 
    14, 
    Brushes.Black); 
context.DrawText(sectionNum, new Point(790 - 96, 20)); 

Bất cứ ai biết điều gì đang xảy ra vậy? Tôi cần để có thể hiển thị mỗi chuỗi để nó đọc giống như LeftToRight, khi được đặt thành RightToLeft.

Cảm ơn!

Trả lời

2

TextInfo có FlowDirection riêng và nó ghi đè WPF FlowDirection.

Vì vậy, nếu bạn nhập bằng tiếng Ả Rập hoặc tiếng Hy Lạp, nó sẽ tự động sử dụng hướng "Phải sang trái". Nhưng có một vấn đề nếu bạn sử dụng các dấu hiệu ";", "" (dấu cách). Compilor nghĩ rằng nó có thể được trong cả hai hướng và nó có thể đặt là "Trái sang phải" trong tiếng Ả Rập, vì vậy ở đây bạn nên sử dụng tùy chỉnh Wpf FlowDirection.

Trong trình biên dịch ví dụ của bạn biết về chữ cái tiếng Anh và sử dụng hướng "Trái sang phải", nhưng phát điên với không gian và số.

Here là câu hỏi tương tự với liên kết đến phần tốt trong sách.

+0

Cuối cùng tôi cũng đã đọc được bài báo. nó không thực sự nói làm thế nào để sửa chữa vấn đề của tôi ... là không có giải pháp thực sự? – Toadums

+0

Tôi không hiểu bạn muốn gì. Nếu bạn muốn đảo ngược chuỗi hơn bạn nên làm điều đó bằng tay, tốt hơn bằng cách sử dụng chức năng tĩnh như ở đây http://www.csharp411.com/c-string-tips/ – Artru

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