2017-08-16 36 views

回答

1

你提到也UWP作品的解決方案New Method。建議在設計時使用Data Binding

以下班級的工作方式類似.resw文件reader。如果您發送密鑰參數,它將返回密鑰的值。

public class LocalizedStrings 
{ 
    public string this[string key] 
    { 
     get 
     { 
      return ResourceLoader.GetForViewIndependentUse().GetString(key); 
     } 
    } 
} 

使用綁定之前,您需要實例化reader在App.xaml文件。

<Application.Resources> 
     <ResourceDictionary> 
      <local:LocalizedStrings x:Key="Localized"/> 
     </ResourceDictionary> 
</Application.Resources> 

Resources.resw

<data name="Title" xml:space="preserve"> 
    <value>ResTitleTest</value> 
</data> 

使用

<TextBlock Text="{Binding Source={StaticResource Localized}, Path=[Title]}" /> 

注意:只有建立後,Textblock內容將顯示在那裏的設計師。

enter image description here

+0

這對我來說已經奏效了,謝謝!我應該使用'Binding'方法還是'x:Uid'?我寧願不使用兩者都沒有指定所有的東西兩次(因爲這似乎是一個很好的錯誤來源)。另外,我已經看到,在運行時''ResourceLoader'仍然是從'Binding'中調用的,即使'Text'屬性之後被'x:Uid'機制覆蓋。 –

+0

如果您想在設計時使用資源字符串,最好使用上面的'Binding'方法。 –

+0

對我而言,顯示的是「項目」而不是實際值。這比根本沒有顯示的文本要好,但是因爲intelliSense不能幫助路徑屬性,所以錯字很容易發生,我希望在designTime看到。有沒有解決方案? – Hannes