void FindNodeFromLocation(TextLocation location, XamlOutlineNode node) { if (node == null) return; if (node.StartMarker.IsDeleted || node.EndMarker.IsDeleted) return; if (location.IsInside(node.StartMarker.Location, node.EndMarker.Location) && (selectedNode == null || IsRangeInside(selectedNode.StartLocation, selectedNode.EndLocation, node.StartLocation, node.EndLocation))) { selectedNode = node; } foreach(var child in node.Children) { FindNodeFromLocation(location, child as XamlOutlineNode); } }