我正在尝试在silverlight应用程序中实现一项功能,用户可以在DatePicker控件获得焦点后立即开始在DatePicker中键入日期,而无需删除控件中已显示的日期。我的问题是,当控件获得焦点时,如何在DatePicker中选择显示的日期,类似于TextBox的SelectAll()。
答案 0 :(得分:1)
您可以从DatePicker派生并在OnApplyTemplate()中获取对其TextBox部件的引用。每当TextBox的GotFocus事件发生时,只需在TextBox中选择SelectAll()文本。像这样:
public class SelectOnFocusDatePicker : DatePicker
{
private DatePickerTextBox _TextBox;
public override void OnApplyTemplate()
{
_TextBox = (DatePickerTextBox)GetTemplateChild("PART_TextBox");
if (_TextBox != null)
_TextBox.GotFocus += (s, e) => _TextBox.SelectAll();
base.OnApplyTemplate();
}
}
HTH。