2012-07-02 61 views
2

下面是來自4.0 DatePicker的子類化嘗試的一段代碼。我想要做這件事的原因之一是對水印有更多的控制權。這裏發生的是我得到了DatePickerTextBox的句柄,但我沒有得到PART_Watermark(它是空的)。DatePicker子類無法找到模板

ApplyTemplate是否是正確的位置?我必須修復哪些信息才能獲得水印?

乾杯,
Berryl

public class DatePickerEx : DatePicker 
{ 

    public override void OnApplyTemplate() 
    { 
     base.OnApplyTemplate(); 

     var datePickerTextBox = GetTemplateChild("PART_TextBox") as DatePickerTextBox; 
     if (datePickerTextBox == null) return; 

     var watermarkPart = datePickerTextBox.Template.FindName("PART_Watermark", datePickerTextBox) as ContentControl; 
     if (watermarkPart == null) return; 

     ...   
    } 
} 

回答

2

我不知道太多關於日期選取器,但如果PART_TextBox都有自己的模板,PART_Watermark是模板的一部分,你應該叫ApplyTemplate你之前的文本框可以訪問其模板部分。

希望它有幫助。