views:

5012

answers:

4

Hi there! I'm using the latest WPF toolkit, specifically the DatePicker. Everything works fine, but when no value is provided, the default 'SHOW CALENDAR' text appears in the DatePickerTextBox. I want to be able to change this value in WPF.

One told me to download the source, add a new Dependency property and recompile to dll. That's cool but what if new version is released?

That's why I'd like to template this control in that way, that I'll be able to override this default string. Any idea how to do that?

Thanks!

+6  A: 

OK. I found a solution by myself.

<Style TargetType="{x:Type toolkit:DatePickerTextBox}">
    <Setter Property="Text" Value="Bitte wählen" />
</Style>

Anyways, you have to be aware of the fact, that there is a DependencyProperty called Watermark which should be set in place of the Text.

The problem is that with the latest MS release (about June 2009) they made this property readonly for some unknown reason. That means, this is the only hack I made up, although there occurs a First-time exception, because the DatePicker is trying to parse the string (he supposes the text to be a Date), but normally you won't notice it.

Another possibility is to edit directly the source code from MS and override the SetWaterMark() method + add your own Dependency Property (MyWaterMark or something). But then you cannot use the provided dll. They said it will come fixed with the .NET 4 realese, let's see.

PaN1C_Showt1Me
A: 

This only seems to work when viewing the XAML page in the designer!
In run-time, the control reverts to displaying the "Show Calendar" watermark.

Nick
It should not, try to put it directly in the Page/UserControl Resources
PaN1C_Showt1Me
A: 

Hello,

This only works when you open the new page and the textbox is already empty. If you put a date in it and them remove the date, "Show Calendar" appears again!

mochy