c# - 如何将光标置于C#中Datepicker控件的第一个位置?

标签 c# wpf datepicker .net-4.5

我在 wpf 表单上有一个日期选择器控件(掩码为 00-00-0000)。如果日期选择器为空,那么无论我在日期选择器文本框的何处单击,我都希望光标始终位于第一个位置。我尝试在 MouseDown 事件上使用 SelectionStart 属性(设置为 0),但它不起作用。谁能给个主意吗?如果您需要更多信息,请告诉我。任何帮助深表感谢。谢谢!

最佳答案

您应该找到 TextBox 元素并订阅事件 PreviewMouseUp

1) 添加 DatePickerLoaded 事件:

<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;
        };
    }
}

关于c# - 如何将光标置于C#中Datepicker控件的第一个位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28863998/

相关文章:

c# - 如何获取程序集中定义的 XAML 资源列表?

django - twitter bootstrap 日期选择器不工作

c# - 在WPF中创建VS2012风格的ListView/Stack面板

javascript - 日期选择器仅更改表格第一行中的日期

java - setMaxDate() 在 Lollipop 5.0.1 android 上无法完美运行,需要适当的解决方案

C# 验证事件 : test for blank textbox and number validation?

c# - 这个内部类静态作用域魔术是如何工作的?

c# - 从具有嵌套母版页的内容页访问控件

c# - 在 asp.net 中获取机器的唯一信息

wpf - 胖模型、瘦 View 模型和哑 View ,最好的 MVVM 方法?