示例#1
0
        /// <inheritdoc />
        public override AutomationElement FindFirst(TreeScope treeScope, ConditionBase condition)
        {
            var cacheRequest = CacheRequest.IsCachingActive ? CacheRequest.Current.ToNative() : null;

            cacheRequest?.Push();
            var nativeFoundElement = NativeElement.FindFirst((UIA.TreeScope)treeScope, ConditionConverter.ToNative(condition));

            cacheRequest?.Pop();
            return(AutomationElementConverter.NativeToManaged(Automation, nativeFoundElement));
        }
        public AutomationElement FindItemByProperty(AutomationElement startAfter, PropertyId property, object value)
        {
            var foundNativeElement = Com.Call(
                () =>
                this.NativePattern.FindItemByProperty(
                    startAfter?.ToNative(),
                    property?.Id ?? 0,
                    ValueConverter.ToNative(value)));

            return(AutomationElementConverter.NativeToManaged((UIA3Automation)this.BasicAutomationElement.Automation, foundNativeElement));
        }
示例#3
0
        /// <inheritdoc />
        public override AutomationElement FindIndexed(TreeScope treeScope, int index, ConditionBase condition)
        {
            var cacheRequest = CacheRequest.IsCachingActive ? CacheRequest.Current.ToNative() : null;

            cacheRequest?.Push();
            var nativeFoundElements = NativeElement.FindAll((UIA.TreeScope)treeScope, ConditionConverter.ToNative(condition));

            cacheRequest?.Pop();
            var nativeElement = nativeFoundElements.Count > index ? nativeFoundElements[index] : null;

            return(nativeElement == null ? null : AutomationElementConverter.NativeToManaged(Automation, nativeElement));
        }
        public override AutomationElement FindIndexed(TreeScope treeScope, ConditionBase condition, int index)
        {
            var nativeFoundElements = CacheRequest.IsCachingActive
                ? this.NativeElement.FindAllBuildCache((Interop.UIAutomationClient.TreeScope)treeScope, condition.ToNative(this.Automation.NativeAutomation), CacheRequest.Current.ToNative(this.Automation))
                : this.NativeElement.FindAll((Interop.UIAutomationClient.TreeScope)treeScope, condition.ToNative(this.Automation.NativeAutomation));
            var nativeElement = nativeFoundElements.GetElement(index);

            if (nativeElement == null)
            {
                return(null);
            }

            return(AutomationElementConverter.NativeToManaged(this.Automation, nativeElement));
        }
示例#5
0
        public override AutomationElement FocusedElement()
        {
            var nativeFocusedElement = NativeAutomation.GetFocusedElement();

            return(AutomationElementConverter.NativeToManaged(this, nativeFocusedElement));
        }
示例#6
0
 public override bool Compare(AutomationElement element1, AutomationElement element2)
 {
     return(NativeAutomation.CompareElements(AutomationElementConverter.ToNative(element1), AutomationElementConverter.ToNative(element2)) != 0);
 }
示例#7
0
        public override AutomationElement FocusedElement()
        {
            var nativeElement = InternalGetNativeElement(() => UIA.AutomationElement.FocusedElement);

            return(AutomationElementConverter.NativeToManaged(this, nativeElement));
        }
示例#8
0
        public override AutomationElement GetDesktop()
        {
            var nativeElement = InternalGetNativeElement(() => UIA.AutomationElement.RootElement);

            return(AutomationElementConverter.NativeToManaged(this, nativeElement));
        }
        public override AutomationElement[] GetCachedChildren()
        {
            var cachedChildren = NativeElement.GetCachedChildren();

            return(AutomationElementConverter.NativeArrayToManaged(Automation, cachedChildren));
        }
示例#10
0
        public override AutomationElement[] FindAll(TreeScope treeScope, ConditionBase condition)
        {
            var nativeFoundElements = NativeElement.FindAll((UIA.TreeScope)treeScope, ConditionConverter.ToNative(condition));

            return(AutomationElementConverter.NativeArrayToManaged(Automation, nativeFoundElements));
        }
示例#11
0
        public AutomationElement[] GetChildren()
        {
            var nativeChildren = ComCallWrapper.Call(() => NativeRange.GetChildren());

            return(AutomationElementConverter.NativeArrayToManaged(Automation, nativeChildren));
        }
示例#12
0
        public override AutomationElement GetItem(int row, int column)
        {
            var nativeItem = NativePattern.GetItem(row, column);

            return(AutomationElementConverter.NativeToManaged((UIA2Automation)FrameworkAutomationElement.Automation, nativeItem));
        }
示例#13
0
 public override bool Compare(AutomationElement element1, AutomationElement element2)
 {
     return(UIA.Automation.Compare(AutomationElementConverter.ToNative(element1), AutomationElementConverter.ToNative(element2)));
 }
示例#14
0
        /// <summary>
        /// Creates an <see cref="UIA.AutomationElement" /> from a given windows handle (HWND)
        /// </summary>
        public override AutomationElement FromHandle(IntPtr hwnd)
        {
            var nativeElement = UIA.AutomationElement.FromHandle(hwnd);

            return(AutomationElementConverter.NativeToManaged(this, nativeElement));
        }
示例#15
0
        public override AutomationElement FromPoint(Point point)
        {
            var nativeElement = UIA.AutomationElement.FromPoint(point);

            return(AutomationElementConverter.NativeToManaged(this, nativeElement));
        }
示例#16
0
        public override AutomationElement GetDesktop()
        {
            var desktop = UIA.AutomationElement.RootElement;

            return(AutomationElementConverter.NativeToManaged(this, desktop));
        }
示例#17
0
        public AutomationElement FindItemByProperty(AutomationElement startAfter, PropertyId property, object value)
        {
            var foundNativeElement = ComCallWrapper.Call(() =>
                                                         NativePattern.FindItemByProperty(
                                                             startAfter == null ? null : AutomationElementConverter.ToNative(startAfter),
                                                             property == null ? 0 : property.Id, ValueConverter.ToNative(value)));

            return(AutomationElementConverter.NativeToManaged((UIA3Automation)BasicAutomationElement.Automation, foundNativeElement));
        }
        public override IReadOnlyList <AutomationElement> GetCachedChildren()
        {
            var cachedChildren = this.NativeElement.GetCachedChildren();

            return(AutomationElementConverter.NativeArrayToManaged(this.Automation, cachedChildren));
        }
        public IReadOnlyList <AutomationElement> GetChildren()
        {
            var nativeChildren = Com.Call(() => this.NativeRange.GetChildren());

            return(AutomationElementConverter.NativeArrayToManaged(this.Automation, nativeChildren));
        }
示例#20
0
        public AutomationElement GetItemByName(string name)
        {
            var nativeElement = ComCallWrapper.Call(() => NativePattern.GetItemByName(name));

            return(AutomationElementConverter.NativeToManaged((UIA3Automation)BasicAutomationElement.Automation, nativeElement));
        }
示例#21
0
        public AutomationElement GetItem(int row, int column)
        {
            var nativeItem = ComCallWrapper.Call(() => NativePattern.GetItem(row, column));

            return(AutomationElementConverter.NativeToManaged((UIA3Automation)BasicAutomationElement.Automation, nativeItem));
        }
示例#22
0
        public AutomationElement GetEnclosingElement()
        {
            var nativeElement = ComCallWrapper.Call(() => NativeRange.GetEnclosingElement());

            return(AutomationElementConverter.NativeToManaged(Automation, nativeElement));
        }
示例#23
0
        public AutomationElement[] GetChildren()
        {
            var nativeChildren = NativeRange.GetChildren();

            return(AutomationElementConverter.NativeArrayToManaged(Automation, nativeChildren));
        }
示例#24
0
        public override AutomationElement FindFirst(TreeScope treeScope, ConditionBase condition)
        {
            var nativeFoundElement = NativeElement.FindFirst((UIA.TreeScope)treeScope, ConditionConverter.ToNative(condition));

            return(AutomationElementConverter.NativeToManaged(Automation, nativeFoundElement));
        }
示例#25
0
        public AutomationElement GetEnclosingElement()
        {
            var nativeElement = NativeRange.GetEnclosingElement();

            return(AutomationElementConverter.NativeToManaged(Automation, nativeElement));
        }
        public override AutomationElement GetCachedParent()
        {
            var cachedParent = NativeElement.GetCachedParent();

            return(AutomationElementConverter.NativeToManaged(Automation, cachedParent));
        }
示例#27
0
        public override AutomationElement GetItem(int row, int column)
        {
            var nativeItem = Com.Call(() => this.NativePattern.GetItem(row, column));

            return(AutomationElementConverter.NativeToManaged((UIA3Automation)this.BasicAutomationElement.Automation, nativeItem));
        }