- wex.zip
- Assemblies
- Microsoft.Expression.Interactions.dll
- System.ComponentModel.Composition.dll
- System.CoreEx.dll
- System.Interactive.dll
- System.Reactive.dll
- System.Windows.Interactivity.dll
- WexEventTrigger.Demo
- WexEventTrigger.sln
- WexEventTrigger
- bin
- Debug
- ClassDiagram1.cd
- Composition
- Lib
- Properties
- Reactive
- Wex.csproj
- Wex.csproj.user
|
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;
namespace Wex.Lib.Interactions
{
/// <summary>
/// A base class for inheriting event based triggers
/// </summary>
public abstract class EventBasedTrigger : WexTrigger
{
/// <summary>
/// The sender of this trigger
/// </summary>
public object Sender
{
get { return (object)GetValue(SenderProperty); }
set { SetValue(SenderProperty, value); }
}
// Using a DependencyProperty as the backing store for Sender. This enables animation, styling, binding, etc...
public static readonly DependencyProperty SenderProperty =
DependencyProperty.Register("Sender", typeof(object), typeof(EventBasedTrigger), new PropertyMetadata(null));
/// <summary>
/// The argument parameter
/// </summary>
public object Argument
{
get { return (object)GetValue(ArgumentProperty); }
set { SetValue(ArgumentProperty, value); }
}
// Using a DependencyProperty as the backing store for Argument. This enables animation, styling, binding, etc...
public static readonly DependencyProperty ArgumentProperty =
DependencyProperty.Register("Argument", typeof(object), typeof(EventBasedTrigger), new PropertyMetadata(null));
protected override void InvokeConditional(object parameter)
{
object val = parameter;
if (parameter is EventResult)
{
var result = parameter as EventResult;
this.Sender = result.Sender;
this.Argument = result.Args;
if (result.Args is DependencyPropertyChangedEventArgs)
{
val = ((DependencyPropertyChangedEventArgs)result.Args).NewValue;
}
}
base.InvokeConditional(val);
}
}
}
|
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#