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); } }
private void OnSizeChanged(object sender, SizeChangedEventArgs e) { HorizontalSnapPointsChanged?.Invoke(this, new object()); }
private void CarouselRepeater_ElementPrepared(ItemsRepeater sender, ItemsRepeaterElementPreparedEventArgs args) => HorizontalSnapPointsChanged?.Invoke(this, EventArgs.Empty);
private void CarouselRepeater_EffectiveViewportChanged(FrameworkElement sender, EffectiveViewportChangedEventArgs args) { Viewport = args.MaxViewport; HorizontalSnapPointsChanged?.Invoke(this, EventArgs.Empty); }