private static void OnTriggersChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { System.Windows.Interactivity.TriggerCollection triggers = System.Windows.Interactivity.Interaction.GetTriggers(d); foreach (System.Windows.Interactivity.TriggerBase trigger in e.NewValue as StyleTriggerCollection) { System.Windows.Interactivity.TriggerBase triggerClone = (System.Windows.Interactivity.TriggerBase)trigger.Clone(); foreach (System.Windows.Interactivity.TriggerAction action in trigger.Actions) { System.Windows.Interactivity.TriggerAction actionClone = (System.Windows.Interactivity.TriggerAction)action.Clone(); triggerClone.Actions.Add(actionClone); } triggers.Add(triggerClone); } }
/// <summary> /// Sets the action associated with the specified Button. /// </summary> /// <param name="button">The Button to associate the action with.</param> /// <param name="action">The action to associate with the button.</param> public static void SetAction(ButtonBase button, TriggerAction action) { if (action == null) { return; } TriggerCollection triggers = GetTriggers(button); foreach (Trigger trigger in triggers) { ClickTrigger clickTrigger = trigger as ClickTrigger; clickTrigger.Action = action; } ClickTrigger newTrigger = new ClickTrigger(); newTrigger.Action = action; triggers.Add(newTrigger); }
/// <summary> /// Sets the action associated with the specified Button. /// </summary> /// <param name="button">The Button to associate the action with.</param> /// <param name="action">The action to associate with the button.</param> public static void SetAction(ButtonBase button, TriggerAction action) { if (action == null) { return; } TriggerCollection triggers = GetTriggers(button); foreach (Trigger trigger in triggers) { ClickTrigger clickTrigger = trigger as ClickTrigger; clickTrigger.Action = action; } ClickTrigger newTrigger = new ClickTrigger(); newTrigger.Action = action; triggers.Add(newTrigger); }