在 xamarin.forms 中打开日期选择器日历而不显示编辑文本框

Open the datepicker calendar without showing the edittextbox in xamarin.forms

我在我的 app.I 中使用 DatePicker 控制 Xamarin.Forms 有一个按钮,我想打开一个弹出窗口,我想在其中显示 [=11= 的日历].但是目前,当我打开弹出窗口时, edittexbox 显示当前日期,当我点击文本框时,日历会打开。但我不想要编辑文本框。我只想在用户点击按钮时显示日历。
有人知道我该怎么做吗?

通过设置 IsVisible=false 隐藏 DatePicker 控件。然后您可以通过从代码中的其他地方调用 Focus() 方法以编程方式触发它。

检查这个:

        DatePicker datePicker = new DatePicker
        {
            Format = "D",
            VerticalOptions = LayoutOptions.CenterAndExpand,
            IsVisible =false,
            IsEnabled = false
        };

        Button button = new Button
        {
            Text = "Date",
            VerticalOptions = LayoutOptions.CenterAndExpand
        };
        button.Clicked += (object sender, EventArgs e) =>
        {
            IsEnabled = true;
            datePicker.Focus();
            button.Text = datePicker.Date.ToString();
        };

参考: https://developer.xamarin.com/api/type/Xamarin.Forms.DatePicker/

Jason 的答案略有改进。将 DatePicker 上的 IsVisible 设置为 false,然后将其设置为 Focus() 确实有效,但是,您可能会发现,当您单击“取消”时,焦点仍停留在 DatePicker 上。如果 DatePicker 已经有焦点,它不会再次显示日期选择器对话框。下面是无论用户如何与对话框交互都始终有效的代码:

        DatePickerTapRecogniser.Tapped += (object sender,
                                           EventArgs e) => {
            Device.BeginInvokeOnMainThread (() => {
                if (DatePickerComponent.IsFocused) {
                    DatePickerComponent.Unfocus ();
                }
                DatePickerComponent.Focus ();
            });
        };