0
我正在做一個關於WPF本地化方法的小型研究。我聽說有標記擴展的想法:WPF,本地化:重新評估控制值
<Label Content="{local:Translate {-- label ID here --}}" />
我喜歡這種解決方案非常:它是非常容易實現,似乎是很好的靈活性。然而,我有一個問題。假設該用戶更改運行時的區域設置。如何確保本地化的屬性將被重新評估以匹配新語言?
我正在做一個關於WPF本地化方法的小型研究。我聽說有標記擴展的想法:WPF,本地化:重新評估控制值
<Label Content="{local:Translate {-- label ID here --}}" />
我喜歡這種解決方案非常:它是非常容易實現,似乎是很好的靈活性。然而,我有一個問題。假設該用戶更改運行時的區域設置。如何確保本地化的屬性將被重新評估以匹配新語言?
您需要致電DependencyObject.InvalidateProperty。請記住,如果您綁定到實施INotifyPropertyChanged
的對象,則它們將通過基礎數據更改來重新評估。
DependencyObject.InvalidateProperty
可以在給定的DependencyProperty
上調用,例如Label.Content
。
Label label = new Label();
label.InvalidateProperty(ContentProperty);
對於需要重新評估的不同屬性,必須完成此操作。關於WPF中關於不同替代方案的本地化有一個深入的article on MSDN,應該進行調查。
你能告訴我更多一點嗎?我應該在我本地化的每一個控制上調用這個方法嗎? – Spook 2011-02-06 21:28:25