public static TriggerBaseNode CreateTrigger(TriggerSourceInformation triggerSource, SceneViewModel viewModel) { RoutedEventInformation eventInformation = triggerSource as RoutedEventInformation; PropertyInformation propertyInformation = triggerSource as PropertyInformation; if ((TriggerSourceInformation)eventInformation != (TriggerSourceInformation)null) { EventTriggerNode eventTriggerNode = EventTriggerNode.Factory.Instantiate(viewModel); eventTriggerNode.RoutedEvent = eventInformation.RoutedEvent; return((TriggerBaseNode)eventTriggerNode); } if (!((TriggerSourceInformation)propertyInformation != (TriggerSourceInformation)null)) { return((TriggerBaseNode)null); } TriggerNode triggerNode = (TriggerNode)null; DependencyProperty dependencyProperty = propertyInformation.DependencyProperty; if (dependencyProperty != null) { triggerNode = TriggerNode.Factory.Instantiate(viewModel); ITriggerConditionNode triggerConditionNode = (ITriggerConditionNode)triggerNode; triggerConditionNode.PropertyKey = dependencyProperty; triggerConditionNode.Value = dependencyProperty.DefaultMetadata.DefaultValue; } return((TriggerBaseNode)triggerNode); }
public static TriggerBaseNode FindOrCreateTrigger(TriggerSourceInformation triggerSource, ITriggerContainer triggerContainer, SceneViewModel viewModel) { RoutedEventInformation eventInformation = triggerSource as RoutedEventInformation; PropertyInformation propertyInformation = triggerSource as PropertyInformation; foreach (TriggerBaseNode triggerBaseNode in (IEnumerable <TriggerBaseNode>)triggerContainer.VisualTriggers) { EventTriggerNode eventTriggerNode = triggerBaseNode as EventTriggerNode; TriggerNode triggerNode = triggerBaseNode as TriggerNode; if (eventTriggerNode != null && (TriggerSourceInformation)eventInformation != (TriggerSourceInformation)null && eventTriggerNode.RoutedEvent == eventInformation.RoutedEvent) { return((TriggerBaseNode)eventTriggerNode); } if (triggerNode != null && (TriggerSourceInformation)propertyInformation != (TriggerSourceInformation)null && ((ITriggerConditionNode)triggerNode).PropertyKey == propertyInformation.DependencyProperty) { return((TriggerBaseNode)triggerNode); } } TriggerBaseNode trigger = TriggersHelper.CreateTrigger(triggerSource, viewModel); if (trigger != null) { triggerContainer.VisualTriggers.Add(trigger); } return(trigger); }
public static RoutedEventInformation GetDefaultEvent(ITypeResolver typeResolver, IType typeId) { RoutedEventInformation eventInformation1 = (RoutedEventInformation)null; foreach (RoutedEventInformation eventInformation2 in EventInformation.GetEventsForType(typeResolver, typeId, MemberType.RoutedEvent)) { if (eventInformation2.RoutedEvent != null && eventInformation2.RoutedEvent == FrameworkElement.LoadedEvent) { return(eventInformation2); } if ((TriggerSourceInformation)eventInformation1 == (TriggerSourceInformation)null) { eventInformation1 = eventInformation2; } } return(eventInformation1); }