我正在使用Windows 10 Universal应用程序,我对如何在文本框点击上实现DatePicker感到困惑。一旦我点击Textbox,我就想让datepicker显示出来。 我尝试过Tapped和OnFocus事件并使用C#调用datepicker,但这没有帮助。 是他们以任何其他方式实现它。
答案 0 :(得分:3)
实际UI控件中UWP中的CalendarDatePicker。这意味着它拥有自己的事件,UI和使用方式。
这意味着如果我将一个简单的CalendarDatePicker添加到我的UI中:
var picker = new CalendarDatePicker();
mainGrid.Children.Add(picker);
我会生成这样的控件:
如果我按“选择日期”按钮:
我的建议是使用它,因为他们已经解决了很多问题并为你创造了一切。但是,如果您真的想使用自己的TextBox,那么没有什么能阻止您这样做。这有点麻烦。
这是一个用于在聚焦TextBox时显示日历视图的选项:
private void CalendarDatePicker_DateChanged(CalendarDatePicker sender, CalendarDatePickerDateChangedEventArgs args)
{
calendar.IsCalendarOpen = false;
textBox.Text = args.NewDate?.DateTime.ToString("dd/MM/yyyy");
}
private void textBox_GotFocus(object sender, RoutedEventArgs e)
{
calendar.IsCalendarOpen = true;
}
相应的XAML:
<TextBox x:Name="textBox" PlaceholderText="Press me!" Tapped="Btn_Tapped" GotFocus="textBox_GotFocus" Height="100" />
<CalendarDatePicker x:Name="calendar" Width="0" Height="0" DateChanged="CalendarDatePicker_DateChanged" />
PS。诀窍是将CalendarDatePicker高度和宽度设置为零,这使得实际按钮不可见,但在设置IsCalendarOpen = true
我希望有所帮助。很想听到有关答案的反馈或批评:)
祝你有个美好的一天!