using System; using System.Windows; namespace MaterialDesignThemes.Wpf.Transitions { [Flags] public enum TransitioningContentRunHint { Loaded = 1, IsVisibleChanged = 2, All = Loaded | IsVisibleChanged } /// /// Content control to enable easier transitions. /// public class TransitioningContent : TransitioningContentBase { static TransitioningContent() { DefaultStyleKeyProperty.OverrideMetadata(typeof(TransitioningContent), new FrameworkPropertyMetadata(typeof(TransitioningContent))); } public TransitioningContent() { Loaded += (sender, args) => Run(TransitioningContentRunHint.Loaded); IsVisibleChanged += (sender, args) => Run(TransitioningContentRunHint.IsVisibleChanged); } public static readonly DependencyProperty RunHintProperty = DependencyProperty.Register( "RunHint", typeof(TransitioningContentRunHint), typeof(TransitioningContent), new PropertyMetadata(TransitioningContentRunHint.All)); public TransitioningContentRunHint RunHint { get { return (TransitioningContentRunHint)GetValue(RunHintProperty); } set { SetValue(RunHintProperty, value); } } private void Run(TransitioningContentRunHint requiredHint) { if ((RunHint & requiredHint) == requiredHint) RunOpeningEffects(); } } }