Ich habe eine Anwendung, die Benutzeroberfläche in der Laufzeit ändert. Hier ist mein Code zum Ändern Sprache:UWP Change CalendarDatePicker Sprache in der Laufzeitumgebung
public void SwitchLanguage(SupportedLanguage language)
{
// Check if passed argument is different from current language
if (CurrentLanguage != language.Type)
{
// Set the new current language
CurrentLanguage = language.Type;
// Override tha application primary language (it will automatically save the language preference)
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = language.FourDigitCode;
ResourceContext.GetForViewIndependentUse().Reset();
ResourceContext.GetForCurrentView();
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("LocalizedResourceMap"));
// Notify code about the changes
this.LanguageChanged?.Invoke(this, new EventArgs());
}
}
Alle Lokalisierung funktioniert gut, außer CalendarDatePicker - es ist Flyout nicht (in Laufzeit, wenn ich die App Relaunch - wenn über fein) lokalisiert erhalten.
Hier sind die Beispiele
eine Seite und ausgewählte CalendarDatePicker Geöffnet:
die Sprache Russisch Switched:
Ich habe versucht, dies zu tun:
// Attach to LanguageChanged event - created in my own code
// And trigger this method inside CalendarDatePicker:
private void LanguageChanged(object sender, EventArgs e)
{
this.Language = "ru-RU"; // Hardcoded value for test only
}
Und das Ergebnis ist folgende:
Ich habe auch versucht() alles zu entkräften. Auch versucht, TemplateChild CalendarView Update-Methode auszulösen - keine Verwendung. Irgendwelche Vorschläge, wie man normale Sprachänderung erreicht?
EDIT:
Dank Elvis Xia, wurde festgestellt, dass auf Sprachwechsel in Code, wird die Calendar Größe geschraubt, denn wenn ich dies tun:
this.calendar.Language = "ru-RU"
this.calendar.Height = 500;
this.calendar.Width = 500;
Ich werde erhalten zu sehen, um die Daten (geschraubt, aber immer noch):
Irgendwelche Ideen, wie Sie das beheben können?
Ab dem zweiten Bild, meinen Sie die Sprache geändert hat, aber es ist etwas falsch mit der Größe des Kalenders Flyout? –
@ ElvisXia-MSFT Ich kann nicht wirklich sagen, dass es ein Größenproblem ist. Es scheint, als wäre Dates nicht gerendert worden - oder vielleicht hast du recht, und die Größe ist kaputt gegangen. Aber warum, wenn ich nur die Sprache geändert habe, nicht den Wochentag - die Daten sollten gleich bleiben (in der Theorie) – Cheese
@ ElvisXia-MSFT, Sie hatten Recht, etwas Seltsames passiert mit Flyout-Größe – Cheese