private void AddDayFlyout_Click(object sender, RoutedEventArgs e) { FrameworkElement senderElement = sender as FrameworkElement; DatePickerFlyout picker = new DatePickerFlyout(); picker.ShowAt(senderElement); picker.DatePicked += Picker_DatePicked; }
void OnDateFly(object sender, TappedRoutedEventArgs e) { if (ReadOnlyBinding) { return; } // 日期选择器 DatePickerFlyout fly = new DatePickerFlyout(); fly.Date = Value; fly.DatePicked += (s, args) => Value = args.NewDate.DateTime; fly.ShowAt(_grid); }
internal override void OnElementFocusChangeRequested(object sender, VisualElement.FocusRequestArgs args) { base.OnElementFocusChangeRequested(sender, args); // Show a picker fly out on focus to match iOS and Android behavior var flyout = new DatePickerFlyout { Placement = FlyoutPlacementMode.Bottom, Date = Control.Date }; flyout.DatePicked += (p, e) => Control.Date = p.Date; if (!Element.IsVisible) { flyout.Placement = FlyoutPlacementMode.Full; } flyout.ShowAt(Control); }
void OnDateTimeFly(object sender, TappedRoutedEventArgs e) { if (ReadOnlyBinding) { return; } // uno无法给出相对位置 TextBlock tb = _grid.Children[0] as TextBlock; var pt = e.GetPosition(null); // 无文本内容时按Grid计算 MatrixTransform trans = string.IsNullOrEmpty(tb.Text) ? _grid.TransformToVisual(null) as MatrixTransform : tb.TransformToVisual(null) as MatrixTransform; if (trans == null) { return; } bool showDateFly = (pt.X <= trans.Matrix.OffsetX + tb.ActualWidth / 2 + 10) && !_dateInTail; if (showDateFly) { // 日期选择器 DatePickerFlyout fly = new DatePickerFlyout(); fly.Date = Value; fly.DatePicked += (s, args) => Value = args.NewDate.DateTime.Date + (Value - Value.Date); fly.ShowAt(_grid); } else { // 时间选择器 TimePickerFlyout tf = new TimePickerFlyout(); tf.Time = Value - Value.Date; tf.TimePicked += (s, args) => Value = Value.Date + args.NewTime; tf.ShowAt(_grid); } }
private void AddDateTimeGrid_Tapped(object sender, TappedRoutedEventArgs e) { DatePickerFlyout datePickerFlyout = new DatePickerFlyout(); datePickerFlyout.MinYear = DateTime.Now; datePickerFlyout.DatePicked += datePickerFlyout_DatePicked; datePickerFlyout.ShowAt(Frame); }
private void DateButton_Click(object sender, RoutedEventArgs e) { _datePickerFlyout = new DatePickerFlyout(); _datePickerFlyout.Date = CurrentDate; _datePickerFlyout.DatePicked += DatePickerFlyout_DatePicked; _datePickerFlyout.ShowAt(dateDisplayButton); }