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); }
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); }
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); }
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); }
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); }
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), ");"); } }
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); }