如何在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 });
}
但是这将在屏幕的左上角显示日期选择器控件。 是否可以自定义它,以便它应该在我单击的字段旁边显示日期选择器,或者是否有其他控件可以帮助我实现此功能。(下图是我期望的行为)>
感谢您的帮助] 1
答案 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)
更改日期值需要使用日期更改事件。在这里查看我的工作解决方案: