我有一个非常奇怪的问题:
在我的机器上,DatePicker根据我要设置的语言/文化更改其水印和日期格式。
如果我将我的应用程序复制到其他计算机,则会发生以下情况:
在某些计算机上,它的工作方式与在我的计算机上相同。在其他计算机上,只有日期格式会更改,但水印不会更改!不用说与日期选择器进行比较非常丑陋。一个德国日期,但一个英国水印。
是什么原因造成的?
对于i18n,我使用以下代码:
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();
}
}
最佳答案
我可以说一句话,Watermark
中的DatePicker
实现了 buggy ,没有轻松访问的方法。也许由于这个困难,文本的本地化不起作用。有一个很棒的@Matt Hamilton
文章,引用自here:
在同一篇文章中,他提供了如何访问Watermark
的决定。这里:
How to localize the WPF 4.0 DatePicker control@Wayne Maurer
以附加的依赖项属性的形式创建了一个通用解决方案:
<DatePicker Grid.Row="2"
local:DatePickerWatermarkBehaviour.Watermark="Select the date" />
您需要基于当前的文化,设置水印文字,例如使用上面的例子。
Note:
在Silverlight中,可以通过Watermark
中的DatePicker
进行访问[ link
]:DatePickerTextBox box = base.GetTemplateChild("TextBox") as DatePickerTextBox;
box.Watermark = "Type or select a date --> ";
关于c# - WPF DatePicker水印使用了错误的语言,但是Dateformat是正确的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18589429/