2012-07-02 6 views
2

아래는 4.0 DatePicker의 서브 클래 싱을 시도한 코드입니다. 이 작업을 수행하려는 이유 중 하나는 워터 마크를보다 잘 제어하는 ​​것입니다. 여기서 일어나는 일은 DatePickerTextBox에 대한 핸들을 얻지 만 PART_Watermark (null 임)을 얻지 못하고 있다는 것입니다.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를 호출해야하는 템플릿의 일부입니다 템플릿 부분에 액세스 할 수 있습니다.

희망이 있습니다.

관련 문제