M C*_*M C 6 c# wpf datepicker internationalization
我有一个非常奇怪的问题:
在我的机器上,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;
}
}
Run Code Online (Sandbox Code Playgroud)
WindowMain.xaml.cs:
public partial class WindowMain : RibbonWindow
{
public WindowMain()
{
this.Language = XmlLanguage.GetLanguage("de-DE");
this.InitializeComponent();
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
设置带水印的文本实际上非常容易:
<DatePicker>
<DatePicker.Resources>
<Style TargetType="DatePickerTextBox">
<Setter Property="Text" Value="Watermark Text"/>
</Style>
</DatePicker.Resources>
</DatePicker>
Run Code Online (Sandbox Code Playgroud)
http://www.admindiaries.com/change-datepicker-watermark-in-wpf/
有一点我可以说,Watermark在DatePicker实施的车上,没有简单的访问权限.也许,由于这种困难,文本的本地化不起作用.有一篇精彩的文章@Matt Hamilton,引自这里:
很多人(我自己也不喜欢)关于DatePicker的东西,默认情况下,如果没有显示日期,它会显示文本"选择日期"作为水印,并且此文本被烘焙到控件中 - 它没有本地化或任何公共财产可访问.如果相关日期是可选的,并且您不一定要提示用户选择一个日期,则这尤其令人沮丧.
在同一篇文章中,他提供了如何访问的决定Watermark.这里:
@Wayne Maurer以附加依赖属性的形式创建了一个通用解决方案:
<DatePicker Grid.Row="2"
local:DatePickerWatermarkBehaviour.Watermark="Select the date" />
Run Code Online (Sandbox Code Playgroud)
您需要基于当前文化,设置水印文本,例如使用上面的示例.
Note:在Silverlight Watermark中DatePicker进行访问[ link]:
DatePickerTextBox box = base.GetTemplateChild("TextBox") as DatePickerTextBox;
box.Watermark = "Type or select a date --> ";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9258 次 |
| 最近记录: |