Ich entwickle gerade eine Metro-App, in der der Benutzer die aktuelle Sprache zur Laufzeit ändern kann und alle benutzerdefinierten Steuerelemente, die geladen werden, ihren Text in Bezug auf die neue Sprache aktualisieren müssen. Problem ist, dass wenn ich die Sprache mit dem folgenden Code ändere, die App-Sprache ändert, aber es aktualisiert nur Text, wenn ich meine App neu starte, weil die Seiten und Steuerelemente, die bereits gerendert werden, zwischengespeichert werden.
%Vor%Was muss ich tun, um das Aktualisieren aller benutzerdefinierten Steuerelemente zur Laufzeit zu erzwingen, ohne meine App neu zu starten?
Um sofort reagieren zu können, müssten Sie den Kontext des Ressourcenmanagers zurücksetzen.
Für Windows 8.1: var resourceContext = Windows.ApplicationModel.Resources.Core.ResourceContext.GetForCurrentView ();
resourceContext.Reset ();
Sie müssen Ihre Seite weiterhin zwingen, sich neu zu zeichnen, und die Ressourcen erneut anfordern, damit die Änderungen ausgeführt werden. Für Windows 8 sehen Sie Ссылка
Sie können die Sprache der App zur Laufzeit mit Hilfe des Quellcodes ändern. Ich nahm Hilfe von diesem und manipulierte die Seite mit den Spracheinstellungen meiner App wie folgt:
In languageSettings.xaml.cs:
*** Hinweis: Bevor Sie verstehen, was ich auf dem Seitencode der LanguageSettings-Seite getan habe, müssen Sie die Codes aus dem Link implementieren, wie bereits erwähnt. Und es kann auch bemerkt werden, dass ich am Windows Phone 8 arbeite.
Tags und Links c# windows-runtime windows-8.1