Xamarin表单UWP中的日历日期选择器

时间:2019-05-20 08:20:57

标签: xamarin.forms uwp datepicker

如何在Xamarin表单UWP应用中创建日历类型的日期选择器。

到目前为止,我已经尝试过:

 <Image Grid.Row="3" Grid.Column="1" Source="Images/datePicker.png" WidthRequest="20" HeightRequest="20" Margin="-40,0,40,0" HorizontalOptions="End">
                        <Image.GestureRecognizers>
                            <TapGestureRecognizer Command="{Binding OnSelectDOBCommand}"/>
                        </Image.GestureRecognizers>
                    </Image>

 public void OnSelectDOB(object obj)
    {         
        dateOfBuildDatePicker = UserDialogs.Instance.DatePrompt(new DatePromptConfig { MaximumDate = DateTime.Today, OnAction = (result) => SetDateOfBirth(result), IsCancellable = true });
    }

但是这将在屏幕的左上角显示日期选择器控件。 是否可以自定义它,以便它应该在我单击的字段旁边显示日期选择器,或者是否有其他控件可以帮助我实现此功能。(下图是我期望的行为)

感谢您的帮助![Calendar Date Picker] 1

3 个答案:

答案 0 :(得分:1)

如果要在UWP平台上使用特殊控件,可以尝试custom renderer

首先,创建一个自定义控件:

public class CustomDatePicker : DatePicker
{
}

然后在UWP上创建自定义渲染器:

[assembly: ExportRenderer(typeof(CustomDatePicker), typeof(CustomDatePickerRenderer))]
namespace Demo.UWP
{
    public class CustomDatePickerRenderer : ViewRenderer<DatePicker, Windows.UI.Xaml.Controls.CalendarDatePicker>
    {
        protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e)
        {
            base.OnElementChanged(e);

            if (Control == null)
            {
                Windows.UI.Xaml.Controls.CalendarDatePicker datePicker = new Windows.UI.Xaml.Controls.CalendarDatePicker();
                SetNativeControl(datePicker);
            }
        }
    }
}

最后,将其用于表单项目:

<StackLayout>
    <local:CustomDatePicker HorizontalOptions="Start"/>
</StackLayout>

或者,您可以尝试使用本机视图:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/native-views/

答案 1 :(得分:1)

即使您选择了数据,

日期值也始终设置为当前日期。该如何解决?

答案 2 :(得分:0)

更改日期值需要使用日期更改事件。在这里查看我的工作解决方案:

https://stackoverflow.com/a/60449912/9523062