コード例 #1
0
        protected override Size ArrangeOverride(Size finalSize)
        {
            try
            {
                if (Children == null || Children.Count == 0)
                {
                    return(new Size());
                }

                Size   childSize = new Size(ColumnWidth, finalSize.Height);
                double x         = ColumnSpacing;

                foreach (var child in Children)
                {
                    child.Arrange(new Rect(new Point(x, 0), childSize));

                    // We consumed a column and a spacing
                    x += ColumnWidth + ColumnSpacing;
                }

                return(new Size(ColumnWidth * Children.Count + ColumnSpacing * (Children.Count + 1), finalSize.Height));
            }

            finally
            {
                HorizontalSnapPointsChanged?.Invoke(this, null);
            }
        }
コード例 #2
0
 private void OnSizeChanged(object sender, SizeChangedEventArgs e)
 {
     HorizontalSnapPointsChanged?.Invoke(this, new object());
 }
コード例 #3
0
 private void CarouselRepeater_ElementPrepared(ItemsRepeater sender, ItemsRepeaterElementPreparedEventArgs args)
 => HorizontalSnapPointsChanged?.Invoke(this, EventArgs.Empty);
コード例 #4
0
 private void CarouselRepeater_EffectiveViewportChanged(FrameworkElement sender, EffectiveViewportChangedEventArgs args)
 {
     Viewport = args.MaxViewport;
     HorizontalSnapPointsChanged?.Invoke(this, EventArgs.Empty);
 }