WPF-DatePicker-Wasserzeichen verwendet falsche Sprache, aber das Datumsformat korrekt ist
Ich habe ein sehr seltsames Problem:
Auf meinem Rechner das DatePicker-änderungen sein Wasserzeichen UND Datum-format, gemäß der Sprache/Kultur, in der ich festlegen möchten.
Wenn ich kopieren meine Anwendung auf anderen Computern passiert Folgendes:
Auf einigen computer-es funktioniert wie auf meinem Rechner. Auf anderen Rechner nur das Datum-format ändert sich aber das Wasserzeichen nicht! Unnötig zu sagen, es ist sehr hässlich, haben einen datepicker mit z.B. einem deutschen Datum, aber eine englische Wasserzeichen.
Was ist die Ursache für dieses Verhalten?
Für i18n benutze ich folgenden code:
App.xaml.cs:
public partial class App : Application
{
public App()
{
CultureInfo ci = new CultureInfo("de-DE");
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;
}
}
WindowMain.xaml.cs:
public partial class WindowMain : RibbonWindow
{
public WindowMain()
{
this.Language = XmlLanguage.GetLanguage("de-DE");
this.InitializeComponent();
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eins kann ich sagen,
Watermark
imDatePicker
umgesetzt buggy, es gibt keinen einfachen Zugang. Vielleicht, weil dieser Schwierigkeit, die Lokalisierung des Textes funktioniert nicht. Es gibt einen wunderbaren Artikel von@Matt Hamilton
Zitat von hier:Im gleichen Artikel, er ist mit der Entscheidung, wie der Zugang zu
Watermark
. Hier:Wie zu lokalisieren, die WPF 4.0 DatePicker-Steuerelement
@Wayne Maurer
erstellt eine universal-Lösung in form von befestigt Abhängigkeitseigenschaft:Müssen Sie auf der Grundlage der aktuellen Kultur, legen Sie den text für Wasserzeichen, z.B. mit oben genannten Beispiel.
Note:
In Silverlight zuWatermark
imDatePicker
auf [link
]:DatePicker
. Ich vermute, dass in der Fall von verschiedenen Betriebssystemen. Für Universelle Lösungen, die ich Vorschlage, zu tun, die Einstellung des Textes in einemWatermark
über angefügte Abhängigkeitseigenschaft oder die meisten machenDatePicker
Kontrolle, denn es ist dieButton
(openCalendar
) mit derTextBox
.Eigentlich ist es wirklich leicht, den Wasserzeichen-text:
http://www.admindiaries.com/change-datepicker-watermark-in-wpf/
Wayne Lösung funktioniert Super, aber funktioniert nicht, wenn DatePicker ist Teil DataGridColumnHeader und manchmal, wenn DatePicker ist auf die Kontrolle, die erst versteckt und dann sichtbar. Matt Hamilton ' s Lösung funktioniert nur, onLoad, und wenn Sie ändern selectedDate ist es wieder ärgerlich, Wählen Sie eine Datum-Wasserzeichen. Die einfachste Lösung ist, einfach zu überschreiben OnRender-Ereignis in benutzerdefinierten Klasse. Wenn Sie die Wasserzeichen-Eigenschaft und nicht ein Wasserzeichen Inhalte, die Sie überschreiben müssen onload-Ereignis. Die komplette Klasse ist hier: