Ejemplo n.º 1
0
        public void ExpandCollapse()
        {
            try {
                var pattern = Element.GetExpandCollapsePattern();
                switch (pattern.Current.ExpandCollapseState)
                {
                case ExpandCollapseState.Collapsed:
                    pattern.Expand();
                    break;

                case ExpandCollapseState.Expanded:
                    pattern.Collapse();
                    break;

                case ExpandCollapseState.LeafNode:
                    break;

                case ExpandCollapseState.PartiallyExpanded:
                    pattern.Expand();
                    break;

                default:
                    break;
                }
            } catch (InvalidOperationException) {
                Console.WriteLine("Can't expand/collapse");
                foreach (var pattern in Element.GetSupportedPatterns())
                {
                    Console.WriteLine("{0} {1}", pattern.Id, pattern.ProgrammaticName);
                }
                try {
                    Element.GetInvokePattern().Invoke();
                } catch (InvalidOperationException) {
                    Console.WriteLine("Can't even invoke, let's try double clicking...");
                    // What an annoying control...
                    var point = Element.GetClickablePoint();
                    point.Offset(0.0, 50.0);
                    Mouse.MoveTo(point);
                    System.Threading.Thread.Sleep(100);
                    point.Offset(0.0, -50.0);
                    Mouse.MoveTo(point);
                    System.Threading.Thread.Sleep(100);
                    Mouse.DoubleClick(System.Windows.Input.MouseButton.Left);
                    System.Threading.Thread.Sleep(100);
                }
            }
        }