private void HandleTileColorChanged(MetroTileColor metroTileColor) { if (!IsLoaded) { return; } Background = MetroTileFrame.GetBackgroundBrushFromTileColor(TileColor); }
/// <summary> /// Overriding to setup state. /// </summary> public override void OnApplyTemplate() { base.OnApplyTemplate(); if (BackgroundProperty.IsUnsetValue(this)) { Background = MetroTileFrame.GetBackgroundBrushFromTileColor(TileColor); } if (CommandParameterProperty.IsUnsetValue(this)) { CommandParameter = this; } SetWidth(Type); var scaleTransform = GetTemplateChild("ScaleTransform") as ScaleTransform; if (scaleTransform != null) { scaleTransform.Bind(ScaleTransform.CenterXProperty, this, ActualWidthProperty, BindingMode.OneWay, _MultiplicationConverter, 0.5); scaleTransform.Bind(ScaleTransform.CenterYProperty, this, ActualHeightProperty, BindingMode.OneWay, _MultiplicationConverter, 0.5); } var content3d = GetTemplateChild("Content3D") as Content3D; if (content3d != null) { var transform = GetTemplateChild("RotateRightInwards") as RotateTransform3D; if (transform != null) { transform.Bind(RotateTransform3D.CenterXProperty, content3d, Content3D.ThreeDBoundsXProperty); } transform = GetTemplateChild("RotateLeftInwards") as RotateTransform3D; if (transform != null) { transform.Bind(RotateTransform3D.CenterXProperty, content3d, Content3D.ThreeDBoundsXProperty, BindingMode.OneWay, _MultiplicationConverter, -1); } transform = GetTemplateChild("RotateTopInwards") as RotateTransform3D; if (transform != null) { transform.Bind(RotateTransform3D.CenterYProperty, content3d, Content3D.ThreeDBoundsYProperty); } transform = GetTemplateChild("RotateBottomInwards") as RotateTransform3D; if (transform != null) { transform.Bind(RotateTransform3D.CenterYProperty, content3d, Content3D.ThreeDBoundsYProperty, BindingMode.OneWay, _MultiplicationConverter, -1); } } _FramesPresenter = GetTemplateChild("FramesPresenter") as MetroTileFramesPresenter; if (_FramesPresenter != null) { this.Bind(HasFramesProperty, _FramesPresenter, "HasItems"); } }
/// <summary> /// Virtual method called to animate the transition between frames. /// </summary> protected virtual void AnimateTransition(MetroTileFrame currentFrame, MetroTileFrame nextFrame) { if (_TransitionAnimation == null) { _TransitionAnimation = CreateTransitionAnimation(); } Storyboard.SetTarget(_TransitionAnimation.Children[0], currentFrame); Storyboard.SetTarget(_TransitionAnimation.Children[1], nextFrame); _TransitionAnimation.Begin(); }
/// <summary> /// Overriding to setup state. /// </summary> protected override void PrepareContainerForItemOverride(DependencyObject element, object item) { base.PrepareContainerForItemOverride(element, item); var frame = (MetroTileFrame)element; var translateTransform = frame.GetTransform <TranslateTransform>(true); if (_CurrentFrame == null) { _CurrentFrame = frame; } else { translateTransform.Bind(TranslateTransform.YProperty, this, "ActualHeight"); } }
private void HandleTimerTick(object sender, EventArgs e) { var nextFrameIndex = ItemContainerGenerator.IndexFromContainer(_CurrentFrame) + 1; if (nextFrameIndex >= Items.Count) { nextFrameIndex = 0; } var nextFrame = (MetroTileFrame)ItemContainerGenerator.ContainerFromIndex(nextFrameIndex); AnimateTransition(_CurrentFrame, nextFrame); _CurrentFrame = nextFrame; StartTimerForCurrentFrame(); }