aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.UI.Controls/TransitionControl.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.UI.Controls/TransitionControl.cs')
-rw-r--r--MediaBrowser.UI.Controls/TransitionControl.cs147
1 files changed, 0 insertions, 147 deletions
diff --git a/MediaBrowser.UI.Controls/TransitionControl.cs b/MediaBrowser.UI.Controls/TransitionControl.cs
deleted file mode 100644
index d1e5ccf0a..000000000
--- a/MediaBrowser.UI.Controls/TransitionControl.cs
+++ /dev/null
@@ -1,147 +0,0 @@
-using Microsoft.Expression.Media.Effects;
-using System.ComponentModel;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Media;
-using System.Windows.Media.Animation;
-
-namespace MediaBrowser.UI.Controls
-{
- /// <summary>
- /// http://victorcher.blogspot.com/2012/02/wpf-transactions.html
- /// </summary>
- public class TransitionControl : ContentControl
- {
- /// <summary>
- /// The _content presenter
- /// </summary>
- private ContentPresenter _contentPresenter;
-
- /// <summary>
- /// Initializes static members of the <see cref="TransitionControl" /> class.
- /// </summary>
- static TransitionControl()
- {
- DefaultStyleKeyProperty.OverrideMetadata(
- typeof(TransitionControl), new FrameworkPropertyMetadata(typeof(TransitionControl)));
-
- ContentProperty.OverrideMetadata(
- typeof(TransitionControl), new FrameworkPropertyMetadata(OnContentPropertyChanged));
- }
-
- /// <summary>
- /// When overridden in a derived class, is invoked whenever application code or internal processes call <see cref="M:System.Windows.FrameworkElement.ApplyTemplate" />.
- /// </summary>
- public override void OnApplyTemplate()
- {
- base.OnApplyTemplate();
- _contentPresenter = (ContentPresenter)Template.FindName("ContentPresenter", this);
- }
-
- #region DP TransitionType
-
- /// <summary>
- /// Gets or sets the type of the transition.
- /// </summary>
- /// <value>The type of the transition.</value>
- public TransitionEffect TransitionType
- {
- get { return (TransitionEffect)GetValue(TransitionTypeProperty); }
- set { SetValue(TransitionTypeProperty, value); }
- }
-
- // Using a DependencyProperty as the backing store for TransitionType. This enables animation, styling, binding, etc...
- /// <summary>
- /// The transition type property
- /// </summary>
- public static readonly DependencyProperty TransitionTypeProperty =
- DependencyProperty.Register("TransitionType", typeof(TransitionEffect), typeof(TransitionControl),
- new UIPropertyMetadata(new BlindsTransitionEffect()));
-
- #endregion DP TransitionType
-
- #region DP Transition Animation
-
- /// <summary>
- /// Gets or sets the transition animation.
- /// </summary>
- /// <value>The transition animation.</value>
- public DoubleAnimation TransitionAnimation
- {
- get { return (DoubleAnimation)GetValue(TransitionAnimationProperty); }
- set { SetValue(TransitionAnimationProperty, value); }
- }
-
- // Using a DependencyProperty as the backing store for TransitionAnimation. This enables animation, styling, binding, etc...
- /// <summary>
- /// The transition animation property
- /// </summary>
- public static readonly DependencyProperty TransitionAnimationProperty =
- DependencyProperty.Register("TransitionAnimation", typeof(DoubleAnimation), typeof(TransitionControl), new UIPropertyMetadata(null));
-
- #endregion DP Transition Animation
-
- /// <summary>
- /// Called when [content property changed].
- /// </summary>
- /// <param name="dp">The dp.</param>
- /// <param name="args">The <see cref="DependencyPropertyChangedEventArgs" /> instance containing the event data.</param>
- private static void OnContentPropertyChanged(DependencyObject dp, DependencyPropertyChangedEventArgs args)
- {
- var oldContent = args.OldValue;
- var newContent = args.NewValue;
-
- var transitionControl = (TransitionControl)dp;
-
- if (DesignerProperties.GetIsInDesignMode(transitionControl))
- return;
-
- if (oldContent != null && newContent != null && transitionControl.IsVisible)
- {
- transitionControl.AnimateContent(oldContent, newContent);
- }
- else if (newContent != null)
- {
- transitionControl.Content = newContent;
- }
- }
-
- /// <summary>
- /// Animates the content.
- /// </summary>
- /// <param name="oldContent">The old content.</param>
- /// <param name="newContent">The new content.</param>
- private void AnimateContent(object oldContent, object newContent)
- {
- FrameworkElement oldContentVisual;
-
- try
- {
- oldContentVisual = VisualTreeHelper.GetChild(_contentPresenter, 0) as FrameworkElement;
- }
- catch
- {
- return;
- }
-
- var transitionEffect = TransitionType;
-
- if (transitionEffect == null)
- {
- _contentPresenter.Content = newContent;
- return;
- }
-
- var da = TransitionAnimation;
- da.From = 0;
- da.To = 1;
- da.FillBehavior = FillBehavior.HoldEnd;
-
- transitionEffect.OldImage = new VisualBrush(oldContentVisual);
- transitionEffect.BeginAnimation(TransitionEffect.ProgressProperty, da);
-
- _contentPresenter.Effect = transitionEffect;
- _contentPresenter.Content = newContent;
- }
- }
-} \ No newline at end of file