我有一个非常奇怪的问题:

在我的机器上,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/

10-11 14:19