private void ScrollTo_Clicked(object sender, EventArgs e) { VirtualizedItemsControl.ScrollToAsync(source[500], this.nextScrollToPosition, true); var previousScrollToPosition = this.nextScrollToPosition; switch (this.nextScrollToPosition) { case ScrollToPosition.MakeVisible: this.nextScrollToPosition = ScrollToPosition.Start; break; case ScrollToPosition.Start: this.nextScrollToPosition = ScrollToPosition.Center; break; case ScrollToPosition.Center: this.nextScrollToPosition = ScrollToPosition.End; break; case ScrollToPosition.End: this.nextScrollToPosition = ScrollToPosition.MakeVisible; break; default: break; } SummaryLabel.Text = $"Scroll to element at index 500 with scroll position : {previousScrollToPosition} (new scroll position wil be {this.nextScrollToPosition})"; }
protected override void Render(DateTime date) { base.Margin = new Windows.UI.Xaml.Thickness(1.5); base.RowDefinitions.Add(new Windows.UI.Xaml.Controls.RowDefinition() { Height = new GridLength(HEADER_HEIGHT) }); base.RowDefinitions.Add(new Windows.UI.Xaml.Controls.RowDefinition() { Height = new GridLength(1, GridUnitType.Star) }); base.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto }); base.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) }); // Holiday background _holidayOverlay = new Rectangle() { Fill = new SolidColorBrush(Colors.Red), Opacity = 0.2, Visibility = Visibility.Collapsed }; Grid.SetRowSpan(_holidayOverlay, 2); Grid.SetColumnSpan(_holidayOverlay, 2); base.Children.Add(_holidayOverlay); // Day number _textBlock = new TextBlock() { Text = date.Day.ToString(), FontSize = 18, VerticalAlignment = VerticalAlignment.Center, Margin = new Thickness(13, 0, 10, 2), FontWeight = FontWeights.ExtraLight }; base.Children.Add(_textBlock); // Holiday label _holidayLabel = new TextBlock() { Text = "Holiday", // No need to localize, it will use the name of the holiday FontSize = 12, HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Top, Margin = new Thickness(0, 10, 0, 0), FontWeight = FontWeights.ExtraLight, Visibility = Visibility.Collapsed }; Grid.SetColumn(_holidayLabel, 1); base.Children.Add(_holidayLabel); // Add button _addButton = new Button() { Width = HEADER_HEIGHT, Height = HEADER_HEIGHT, Style = App.Current.Resources["TransparentButtonStyle"] as Style, Content = new SymbolIcon(Symbol.Add) { RenderTransform = new ScaleTransform() { CenterX = 0.4, CenterY = 0.4 }, RenderTransformOrigin = new Windows.Foundation.Point(0.5, 0.5) }, HorizontalAlignment = HorizontalAlignment.Right, Opacity = 0 }; _addButton.Tapped += _addButton_Tapped; Grid.SetColumn(_addButton, 1); base.Children.Add(_addButton); // Task and event items _itemsControl = new VirtualizedItemsControl() { ItemTemplate = (DataTemplate)App.Current.Resources["MainCalendarItemTemplate"] }; Grid.SetRow(_itemsControl, 1); Grid.SetColumnSpan(_itemsControl, 2); base.Children.Add(_itemsControl); }