Выбор даты календаря в формах Xamarin UWP - PullRequest
0 голосов
/ 20 мая 2019

Как создать средство выбора даты типа календаря в приложении UWP форм Xamarin.

До сих пор я пробовал это:

 <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

1 Ответ

1 голос
/ 21 мая 2019

Если вы хотите использовать специальный элемент управления на платформе 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...