2

以下は、4.0 DatePicker のサブクラス化を試みたコードの一部です。これを行う理由の 1 つは、透かしをより細かく制御できるようにすることです。ここで何が起こるかというと、DatePickerTextBox へのハンドルを取得していますが、PART_Watermark を取得していません (null です)。

ApplyTemplate はこれを行うのに適切な場所ですか? 透かしを取得するには何を修正する必要がありますか?

乾杯、
ベリル

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;

        ...        
     }
}
4

1 に答える 1

2

日付ピッカーについてはよくわかりませんPART_TextBoxが、独自のテンプレートがあり、そのテンプレートの一部である場合は、そのテンプレート パーツにアクセスする前にテキスト ボックスPART_Watermarkを呼び出す必要があります。ApplyTemplate

それが役に立てば幸い。

于 2012-09-04T19:17:00.363 に答える