AccordianPane paneToAnimate = _panes.FirstOrDefault(p => p.IsExpanded); Storyboard expandStoryboard = new Storyboard(); DoubleAnimation da = new DoubleAnimation(); da.To = ActualWidth - ((_panes.Count - 1) * CollapsedPaneWidth) > 0 ? ActualWidth - ((_panes.Count - 1) * CollapsedPaneWidth) : 1; da.Duration = TimeSpan.FromSeconds(instant ? 0 : SlideSpeed); Storyboard.SetTarget(da, paneToAnimate); Storyboard.SetTargetProperty(da, new PropertyPath("(FrameworkElement.Width)")); expandStoryboard.Children.Add(da); expandStoryboard.Begin();