如何将光标放在C#中的Datepicker控件的第一个位置?

时间:2015-03-04 20:13:44

标签: c# wpf datepicker .net-4.5

我在wpf表单上有一个datepicker控件(屏蔽为00-00-0000)。如果datepicker为空,那么无论我在哪里点击datepicker文本框,我都希望光标始终位于第一个位置。我尝试在MouseDown事件上使用SelectionStart属性(设置为0),但它不起作用。任何人都可以请一个想法吗?如果您需要更多信息,请告诉我。任何帮助深表感谢。谢谢!

1 个答案:

答案 0 :(得分:2)

您应该找到TextBox元素并订阅活动PreviewMouseUp

1)使用DatePicker事件添加Loaded

<DatePicker Name="myDatePicker" Loaded="MyDatePicker_OnLoaded" /> 

2)查找TextBox元素(文本框元素的DatePicker类型为DatePickerTextBox)并订阅PreviewMouseUp

private void MyDatePicker_OnLoaded(object sender, RoutedEventArgs e)
{
    var tb = (DatePickerTextBox)myDatePicker.Template.FindName("PART_TextBox", myDatePicker);
    if (tb != null)
    {
        tb.PreviewMouseUp += (s, args) =>
        {
            tb.CaretIndex = 0;
        };
    }
}