Từ the fine manual:
Xem CultureInfo.CurrentCulture
tài sản để học cách văn hóa mặc định của một chủ đề được xác định, và cách người dùng thiết lập thông tin văn hóa cho máy tính của họ.
One laborious click later...
Làm thế nào văn hóa của Chủ đề được xác định
Khi một thread được bắt đầu, văn hóa của nó ban đầu được xác định như sau:
Bằng cách lấy nền văn hóa đó là được chỉ định bởi thuộc tính DefaultThreadCurrentCulture
trong miền ứng dụng mà chuỗi đang thực thi, nếu thuộc tính va lue không phải là null
.
Bằng cách gọi hàm Windows GetUserDefaultLocaleName
.
Lưu ý rằng nếu bạn đặt một nền văn hóa cụ thể mà là khác nhau từ văn hóa hệ thống cài đặt sẵn hoặc văn hóa ưa thích của người dùng, và ứng dụng của bạn bắt đầu nhiều chủ đề, văn hóa hiện tại của những chủ đề sẽ là văn hóa được trả về bởi hàm GetUserDefaultLocaleName
, trừ khi bạn chỉ định một nền văn hóa cho thuộc tính DefaultThreadCurrentCulture
trong miền ứng dụng mà chuỗi đang thực thi.
Để biết thêm thông tin về cách xác định văn hóa của chuỗi, hãy xem phần "Văn hóa và chủ đề" trong chủ đề CultureInfo
.
I didn't budget for another click, but clicked anyway.
Văn hóa Chủ đề
Khi một thread ứng dụng mới được bắt đầu, văn hóa hiện tại của mình và văn hóa giao diện người dùng hiện tại được xác định bởi văn hóa hệ thống hiện tại, chứ không phải bởi văn hóa thread hiện hành. Ví dụ sau minh họa sự khác biệt. Nó đặt văn hóa hiện tại và văn hóa giao diện người dùng hiện tại của một chuỗi ứng dụng sang nền văn hóa Pháp (Pháp) (fr-FR). Nếu văn hóa hiện tại đã là fr-FR, ví dụ sẽ đặt nó thành văn hóa tiếng Anh (Hoa Kỳ) (en-US). Nó hiển thị ba số ngẫu nhiên dưới dạng giá trị tiền tệ và sau đó tạo một chuỗi mới, trong đó, lần lượt, hiển thị ba số ngẫu nhiên hơn dưới dạng giá trị tiền tệ. Nhưng như đầu ra từ ví dụ cho thấy, các giá trị tiền tệ được hiển thị bởi chuỗi mới không phản ánh các quy ước định dạng của văn hóa Pháp (Pháp), không giống như đầu ra từ chuỗi ứng dụng chính.
Lưu ý rằng nó nói khi a thread ứng dụng mới được bắt đầu. Vì vậy, cho rằng bạn nói:
Nó không phải từ thông tin văn hóa Windows vì tôi đã thay đổi từ en-US thành en-GB mà không nhận thấy bất kỳ thay đổi nào trong ứng dụng khi chạy.
Bạn có thể muốn xem lại this answer.
Nguồn
2013-07-10 09:41:43
hãy xem đây http://stackoverflow.com/questions/2764615/wpf-stringformat-0c-showing-as-dollars này nên giải quyết vấn đề của bạn –