Exemplo n.º 1
0
        static void TestLogicalTreeInTarget(SearchTestControl ctrl, Button button1, ListView listView)
        {
            var b = SearcherInTarget.ByBinding(TreeUtilityInTarget.LogicalTree(ctrl), "Button1Command").Single();

            Assert.AreEqual(button1, b);
            Assert.AreEqual(0, TreeUtilityInTarget.LogicalTree(listView).ByType <ListViewItem>().Count());
        }
        static void TestByCommandInTarget(ButtonSearchTestControl ctrl, Button button2Expected)
        {
            var buttons = TreeUtilityInTarget.LogicalTree(ctrl).ByType <Button>();
            var button2 = ButtonSearcherInTarget.ByCommand(buttons, ApplicationCommands.Close).Single();

            Assert.AreEqual(button2, button2Expected);
        }
        static void TestByIsCancelInTarget(ButtonSearchTestControl ctrl, Button button5Expected)
        {
            var buttons = TreeUtilityInTarget.LogicalTree(ctrl).ByType <Button>();
            var button5 = ButtonSearcherInTarget.ByIsCancel(buttons).Single();

            Assert.AreEqual(button5, button5Expected);
        }
        static void TestByCommandParameterTextInTarget(ButtonSearchTestControl ctrl, Button button4Expected)
        {
            var buttons = TreeUtilityInTarget.LogicalTree(ctrl).ByType <Button>();
            var button4 = ButtonSearcherInTarget.ByCommandParameterText(buttons, "A").Single();

            Assert.AreEqual(button4, button4Expected);
        }
        public override bool ConvertChildClientPoint(ref System.Drawing.Point clientPointWinForms, out string childUIObject)
        {
            childUIObject = string.Empty;
            var clientPoint = new Point(clientPointWinForms.X, clientPointWinForms.Y);

            //指定座標の要素取得
            var hitElement = PointUtility.GetPosElement(clientPoint, _control);

            if (hitElement == null)
            {
                return(false);
            }

            //DataGridCell取得
            DataGridCell cell = null;

            foreach (var x in TreeUtilityInTarget.VisualTree(hitElement, TreeRunDirection.Ancestors))
            {
                if (Equals(x, _control))
                {
                    break;
                }
                cell = x as DataGridCell;
                if (cell != null)
                {
                    break;
                }
            }

            if (cell == null)
            {
                return(false);
            }
            var row = DataGridRow.GetRowContainingElement(cell);

            if (row == null)
            {
                return(false);
            }

            int rowindex = row.GetIndex();
            var colIndex = cell.Column.DisplayIndex;

            //座標変換
            var screenPos  = _control.PointToScreen(clientPoint);
            var childPoint = cell.PointFromScreen(screenPos);

            clientPointWinForms.X = (int)childPoint.X;
            clientPointWinForms.Y = (int)childPoint.Y;

            childUIObject = $".GetCell({rowindex}, {colIndex})";
            return(true);
        }
Exemplo n.º 6
0
        static void TestBindingInTarget(SearchTestControl ctrl, Button button1, TextBox textBox)
        {
            DependencyObject b = SearcherInTarget.ByBinding(TreeUtilityInTarget.LogicalTree(ctrl), "Button1Command").Single();

            Assert.AreEqual(button1, b);

            var collection = SearcherInTarget.ByBinding(TreeUtilityInTarget.LogicalTree(ctrl), "DataText");

            Assert.AreEqual(2, collection.Count());

            var t = SearcherInTarget.ByBinding(TreeUtilityInTarget.LogicalTree(ctrl), "DataText", ctrl.DataContext).Single();

            Assert.AreEqual(textBox, t);
        }
Exemplo n.º 7
0
        static void TestTypeInTarget(SearchTestControl ctrl, ListView listView)
        {
            var collection = SearcherInTarget.ByType(TreeUtilityInTarget.LogicalTree(ctrl), typeof(Button).FullName);

            Assert.AreEqual(2, collection.Count());
            collection = SearcherInTarget.ByType <Button>(TreeUtilityInTarget.LogicalTree(ctrl));
            Assert.AreEqual(2, collection.Count());
            collection = SearcherInTarget.ByType <ButtonBase>(TreeUtilityInTarget.LogicalTree(ctrl));
            Assert.AreEqual(3, collection.Count());

            var list = SearcherInTarget.ByType(TreeUtilityInTarget.LogicalTree(ctrl), typeof(ListView).FullName).Single();

            Assert.AreEqual(list, listView);
            list = SearcherInTarget.ByType <ListView>(TreeUtilityInTarget.LogicalTree(ctrl)).Single();
            Assert.AreEqual(list, listView);
        }
 public static bool HasFocus(UIElement uiElement)
 {
     if (uiElement.IsMouseCaptured || uiElement.IsKeyboardFocused || uiElement.IsFocused)
     {
         return(true);
     }
     foreach (var x in TreeUtilityInTarget.VisualTree(uiElement))
     {
         var element = x as UIElement;
         if (element != null && (element.IsFocused || element.IsMouseCaptured || element.IsKeyboardFocused))
         {
             return(true);
         }
     }
     return(false);
 }
Exemplo n.º 9
0
 bool HasFocus()
 {
     foreach (var e in TreeUtilityInTarget.VisualTree(_control))
     {
         var uielement = e as UIElement;
         if (uielement == null)
         {
             continue;
         }
         if (uielement.IsFocused)
         {
             return(true);
         }
     }
     return(false);
 }
Exemplo n.º 10
0
        public override bool ConvertChildClientPoint(ref System.Drawing.Point clientPointWinForms, out string childUIObject)
        {
            childUIObject = string.Empty;
            var clientPoint = new Point(clientPointWinForms.X, clientPointWinForms.Y);

            //指定座標の要素取得
            var hitElement = PointUtility.GetPosElement(clientPoint, _control);

            if (hitElement == null)
            {
                return(false);
            }

            //Item取得
            ListBoxItem item = null;

            foreach (var x in TreeUtilityInTarget.VisualTree(hitElement, TreeRunDirection.Ancestors))
            {
                if (Equals(x, _control))
                {
                    break;
                }
                item = x as ListBoxItem;
                if (item != null)
                {
                    break;
                }
            }

            if (item == null)
            {
                return(false);
            }

            var index = _control.ItemContainerGenerator.IndexFromContainer(item);

            //座標変換
            var screenPos  = _control.PointToScreen(clientPoint);
            var childPoint = item.PointFromScreen(screenPos);

            clientPointWinForms.X = (int)childPoint.X;
            clientPointWinForms.Y = (int)childPoint.Y;

            childUIObject = $".GetItem({index})";

            return(true);
        }
Exemplo n.º 11
0
        void SelectionChanged(object sender, EventArgs e)
        {
            bool isFocused = (_control.IsMouseCaptured || _control.IsKeyboardFocused || _control.IsFocused);

            foreach (var x in TreeUtilityInTarget.VisualTree(_control))
            {
                var element = x as UIElement;
                if (element != null && (element.IsFocused || element.IsMouseCaptured || element.IsKeyboardFocused))
                {
                    isFocused = true;
                    break;
                }
            }
            if (isFocused)
            {
                AddSentence(new TokenName(), ".EmulateChangeSelectedIndex(" + _control.SelectedIndex, new TokenAsync(CommaType.Before), ");");
            }
        }
Exemplo n.º 12
0
        public override bool ConvertChildClientPoint(ref System.Drawing.Point clientPointWinForms, out string childUIObject)
        {
            childUIObject = string.Empty;
            var clientPoint = new Point(clientPointWinForms.X, clientPointWinForms.Y);

            //指定座標の要素取得
            var hitElement = PointUtility.GetPosElement(clientPoint, _control);

            if (hitElement == null)
            {
                return(false);
            }

            //TreeItemをたどる
            var items = new List <TreeViewItem>();

            foreach (var x in TreeUtilityInTarget.VisualTree(hitElement, TreeRunDirection.Ancestors))
            {
                if (Equals(x, _control))
                {
                    break;
                }
                var item = x as TreeViewItem;
                if (item != null)
                {
                    items.Add(item);
                }
            }

            if (items.Count == 0)
            {
                return(false);
            }

            //座標変換
            var screenPos  = _control.PointToScreen(clientPoint);
            var childPoint = items[0].PointFromScreen(screenPos);

            clientPointWinForms.X = (int)childPoint.X;
            clientPointWinForms.Y = (int)childPoint.Y;

            //子取得用文字列作成
            items.Reverse();

            var texts = new List <string>();

            foreach (var x in items)
            {
                texts.Add(HeaderedItemsControlUtility.GetItemText(x));
            }
            var          indices      = new List <int>();
            ItemsControl itemsControl = _control;

            foreach (var x in items)
            {
                indices.Add(itemsControl.ItemContainerGenerator.IndexFromContainer(x));
                itemsControl = x;
            }

            childUIObject = $".GetItem({MakeGetArgs(IsTextKey, indices.ToArray(), texts.ToArray())})";
            return(true);
        }