|
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.ComponentModel;
using Slex.Lib.Interactions;
namespace Slex.Lib.Interactions
{
/// <summary>
/// An action to start/stop/pause/resume a storyboard
/// </summary>
public class StoryBoardAction : SlexTriggerAction
{
private StoryBoardActionEnum _storyBoardAction = StoryBoardActionEnum.Begin;
/// <summary>
/// Action to perform on this story board
/// </summary>
public StoryBoardActionEnum Action
{
get { return _storyBoardAction; }
set { _storyBoardAction = value; }
}
private string _storyBoardName=string.Empty;
/// <summary>
/// The target story board name
/// </summary>
public string StoryBoardName
{
get { return _storyBoardName; }
set { _storyBoardName = value; }
}
/// <summary>
/// Invoke the story board action
/// </summary>
/// <param name="parameter"></param>
internal override void InvokeConditional(object parameter)
{
if (StoryBoardName != null && AssociatedObject is FrameworkElement)
{
var storyBoard = (AssociatedObject as FrameworkElement).FindName(StoryBoardName) as Storyboard;
if (storyBoard != null)
{
switch (Action)
{
case StoryBoardActionEnum.Begin:
storyBoard.Begin(); break;
case StoryBoardActionEnum.Stop:
storyBoard.Stop(); break;
case StoryBoardActionEnum.Resume:
storyBoard.Resume(); break;
case StoryBoardActionEnum.Pause:
storyBoard.Pause(); break;
case StoryBoardActionEnum.ReverseOn:
storyBoard.AutoReverse = true;
break;
case StoryBoardActionEnum.ReverseOff:
storyBoard.AutoReverse = false;
break;
}
}
}
}
}
/// <summary>
/// Defines a story board action type
/// </summary>
public enum StoryBoardActionEnum
{
Begin,
Stop,
Pause,
Resume,
ReverseOn,
ReverseOff
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Architect, Developer, Speaker | Wannabe GUT inventor & Data Scientist | Microsoft MVP in C#