コード例 #1
0
ファイル: TreeTracker.cs プロジェクト: lisli1/axe-windows
        /// <summary>
        /// Do not call this function directly. Instead, call MoveTo().
        /// </summary>
        /// <param name="getElementMethod"></param>
        private void _MoveTo(GetElementDelegate getElementMethod)
        {
            var element = GetNearbyElement(getElementMethod);

            if (element == null)
            {
                throw new TreeNavigationFailedException();
            }

#pragma warning disable CA2000 // Call IDisposable.Dispose()
            var desktopElement = new DesktopElement(element, true, false);
#pragma warning restore CA2000

            desktopElement.PopulateMinimumPropertiesForSelection();
            if (desktopElement.IsRootElement() == false)
            {
                this.SelectAction?.SetCandidateElement(desktopElement);
                this.SelectAction?.Select();
            }
            else
            {
                // if it is desktop, release it.
                desktopElement.Dispose();
                throw new TreeNavigationFailedException();
            }
        }