private static void _ChangeState(CollapsiblePanel panel, string goToState, string stateStoryboardName) { if (panel != null && goToState != null) { VisualStateManager.GoToState((panel as Control), goToState, true); } if (stateStoryboardName != null) { Storyboard sb = (panel as FrameworkElement).Resources[stateStoryboardName] as Storyboard; if (sb != null) { sb.Begin(); } } }
private static void IsExpandedChanged(DependencyObject o, DependencyPropertyChangedEventArgs e) { bool expanded = (bool)e.NewValue; CollapsiblePanel panel = o as CollapsiblePanel; if (panel != null) { if (expanded) { _ChangeState(panel, Expand, panel._RollDownStoryboardName); } else { _ChangeState(panel, Collapse, panel._RollUpStoryboardName); } } }