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})";
        }
Exemple #2
0
        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);
        }