IsWindowsRuntimeType() приватный статический Метод

private static IsWindowsRuntimeType ( Type type ) : bool
type System.Type
Результат bool
        private void RegisterEvent(string eventName)
        {
            if (string.IsNullOrEmpty(eventName))
            {
                return;
            }

            if (eventName != "Loaded")
            {
                Type      sourceObjectType = this.resolvedSource.GetType();
                EventInfo info             = sourceObjectType.GetRuntimeEvent(eventName);
                if (info == null)
                {
                    throw new ArgumentException(string.Format(
                                                    CultureInfo.CurrentCulture,
                                                    ResourceHelper.CannotFindEventNameExceptionMessage,
                                                    this.EventName,
                                                    sourceObjectType.Name));
                }

                MethodInfo methodInfo = typeof(EventTriggerBehavior).GetTypeInfo().GetDeclaredMethod("OnEvent");
                this.eventHandler = methodInfo.CreateDelegate(info.EventHandlerType, this);

                this.isWindowsRuntimeEvent = EventTriggerBehavior.IsWindowsRuntimeType(info.EventHandlerType);
                if (this.isWindowsRuntimeEvent)
                {
                    this.addEventHandlerMethod    = add => (EventRegistrationToken)info.AddMethod.Invoke(this.resolvedSource, new object[] { add });
                    this.removeEventHandlerMethod = token => info.RemoveMethod.Invoke(this.resolvedSource, new object[] { token });

                    WindowsRuntimeMarshal.AddEventHandler(this.addEventHandlerMethod, this.removeEventHandlerMethod, this.eventHandler);
                }
                else
                {
                    info.AddEventHandler(this.resolvedSource, this.eventHandler);
                }
            }
            else if (!this.isLoadedEventRegistered)
            {
                FrameworkElement element = this.resolvedSource as FrameworkElement;
                if (element != null && !EventTriggerBehavior.IsElementLoaded(element))
                {
                    this.isLoadedEventRegistered = true;
                    element.Loaded += this.OnEvent;
                }
            }
        }
Пример #2
0
 private static bool IsWindowsRuntimeEvent(EventInfo eventInfo)
 {
     return(eventInfo != null &&
            EventTriggerBehavior.IsWindowsRuntimeType(eventInfo.EventHandlerType) &&
            EventTriggerBehavior.IsWindowsRuntimeType(eventInfo.DeclaringType));
 }