Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }