/// <summary> /// Searches for an occurrence of text within the range. /// </summary> /// <param name="text">The text to search for.</param> /// <param name="backward">true if the last occurring range should be returned instead of the first.</param> /// <param name="ignoreCase">true if case should be ignored for the purposes of comparison.</param> /// <returns>A subrange with the specified text, or null if no such subrange exists.</returns> public TextPatternRange FindText(string text, bool backward, bool ignoreCase) { // PerSharp/PreFast will flag this as warning 6507/56507: Prefer 'string.IsNullOrEmpty(text)' over checks for null and/or emptiness. // A null string is not should throw an ArgumentNullException while an empty string should throw an ArgumentException. // Therefore we can not use IsNullOrEmpty() here, suppress the warning. Misc.ValidateArgumentNonNull(text, "text"); #pragma warning suppress 6507 Misc.ValidateArgument(text.Length != 0, SRID.TextMustNotBeNullOrEmpty); SafeTextRangeHandle hResultTextRange = UiaCoreApi.TextRange_FindText(_hTextRange, text, backward, ignoreCase); return(Wrap(hResultTextRange, _pattern)); }