2016-03-21 12 views
1

Kaynaklara doğrudan xaml düzenimde erişmek istiyorum ve resmi doc bize bazı kötü örnekler veriyor, böylece iş alamıyorum. Resources.resw aşağıdaki varsayalım:uwp içindeki xaml düzenindeki Access .resx dizesi kaynağı

enter image description here

ben şöyle C# sınıfından benim dize kaynaklara erişebilir:

var loader = new ResourceLoader(); 
var resourceString = loader.GetString("txt_ok"); 

nasıl örneğin bir TextBlock metin için xaml bu kaynağı erişebilir? Eğer kaynak dosyasında bir dize kaynağı tanımladığınızda

<TextBlock 
    x:Name="MyTextBox" 
    Text="I want to get string resource here"/> 

Ben, here veya here bazı örnekler ama hiçbir başarısını

UWP uygulamasında
+1

x kullandığınızda: bağlantılı çözümlerinde açıklandığı gibi Statik, derleme hataları alıyor musunuz? Eğer öyleyse, belki resx kamu (açık özellikleri ayarlamak ve özel araç = PublicResXFileCodeGenerator) yapmak gerekir. – heringer

+0

Hata alıyorum 'Statik bir Windows Universal projesinde desteklenmiyor. 'Gibi bir şey denerken:' Text = "{x: Statik MyAppName.Properties.Resource.txt_ok}" ' – Choletski

cevap

6

çalışıyordum, bu dizenin Name özelliği "Ad" da olabilir veya "Name.Property".

xaml kodunda, denetimleri kaynağa ilişkilendirmek için Uid özniteliğini kullanırız, ancak kaynağı xaml kodunda kullandığımızda, denetimin özellik ne olduğunu bilmemesi durumunda, belirtilen özelliği kaynak adına eklemeliyiz. dize kaynağına uygulanır. Bu kodda aynıdır

, sen

var loader = new ResourceLoader(); 
var resourceString = loader.GetString("txt_ok"); 

kullanarak kaynak olsun ama yine de örneğin bir TextBlock ait Text özelliğine bu resourceString ayarlamanız gerekir:

txt.Text = resourceString; 

Dize kaynağını doğrudan xaml kodunda kullanmak isterseniz, kaynak dosyanızı şu şekilde düzenleyiniz:

enter image description here

Ve şimdi ilişkilendirmek edebilirsiniz böyle Kaynağınıza TextBlock:

<TextBlock x:Uid="/Resources/txt_settings" /> 
:
<TextBlock x:Uid="txt_cancel" /> 

Ya da bu (% 100 doğru değil, bu kaynak dosyasının konumuna göre değişir) gibi

Toplama: Ayrıca böyle örnek için kaynak dosyadaki diğer özelliği tanımlayabilirsiniz :

enter image description here

Ve TextBlock bir için bu kaynağı uyguladığınızda:

<TextBlock x:Uid="MyApp" /> 

göreceksiniz:

enter image description here

+0

Açıklama için teşekkürler, harika çalışıyor – Choletski