Partager via


RootNode.GetTextRangeFromNodes, méthode

Mise à jour : November 2007

Recherche la plage de texte dans la chaîne reconnue qui correspond à une collection d'objets ContextNode qui sont des descendants du RootNode.

Espace de noms :  System.Windows.Ink
Assembly :  IAWinFX (dans IAWinFX.dll)

Syntaxe

'Déclaration
Public Sub GetTextRangeFromNodes ( _
    subTree As ContextNodeCollection, _
    <OutAttribute> ByRef start As Integer, _
    <OutAttribute> ByRef length As Integer _
)
'Utilisation
Dim instance As RootNode
Dim subTree As ContextNodeCollection
Dim start As Integer
Dim length As Integer

instance.GetTextRangeFromNodes(subTree, _
    start, length)
public void GetTextRangeFromNodes(
    ContextNodeCollection subTree,
    out int start,
    out int length
)
public:
void GetTextRangeFromNodes(
    ContextNodeCollection^ subTree, 
    [OutAttribute] int% start, 
    [OutAttribute] int% length
)
public void GetTextRangeFromNodes(
    ContextNodeCollection subTree,
    /** @attribute OutAttribute */ /** @ref */int start,
    /** @attribute OutAttribute */ /** @ref */int length
)
public function GetTextRangeFromNodes(
    subTree : ContextNodeCollection, 
    start : int, 
    length : int
)

Paramètres

  • length
    Type : System.Int32%
    Longueur de la plage de texte.

Notes

Si le subTree contient un objet ContextNode qui n'est pas un descendant du RootNode, une exception ArgumentException est levée.

Si le paramètre subTree contient des objets ContextNode qui ne sont pas consécutifs, la plus petite plage de texte qui couvre tous les objets ContextNode est retournée.

Exemples

L'exemple suivant prend un RootNode, theRootNode, à partir d'un InkAnalyzer nommé theInkAnalyzer et recherche le dernier WritingRegionNode en sélectionnant la zone d'écriture ayant les limites les plus basses. Il recherche ensuite la plage de texte qui correspond à la région d'écriture active, place la valeur de la méthode GetRecognizedString dans un TextBox nommé theResultsTextBox et sélectionne le texte correspondant à cette dernière région d'écriture.

Dim theRootNode As RootNode = CType(theInkAnalyzer.RootNode, RootNode)
Dim regions As ContextNodeCollection = theInkAnalyzer.FindNodesOfType(ContextNodeType.WritingRegion)
Dim lastRegion As WritingRegionNode = Nothing
Dim maxY As Double = Double.MinValue
Dim region As WritingRegionNode
For Each region In  regions
    If [region].Location.GetBounds().Bottom > maxY Then
        maxY = [region].Location.GetBounds().Bottom
        lastRegion = [region]
    End If
Next region

If lastRegion Is Nothing Then
    Return
End If 
' Create a collection to hold this line
Dim lastRegionCollection As New ContextNodeCollection(theInkAnalyzer)
lastRegionCollection.Add(lastRegion)

' Find corresponding start and length
Dim start, length As Integer
theRootNode.GetTextRangeFromNodes(lastRegionCollection, start, length)

' Select this in the text box
theResultsTextBox.Text = theRootNode.GetRecognizedString()
theResultsTextBox.Select(start, length)
RootNode theRootNode = (RootNode)theInkAnalyzer.RootNode;
ContextNodeCollection regions =
    theInkAnalyzer.FindNodesOfType(ContextNodeType.WritingRegion);
WritingRegionNode lastRegion = null;
double maxY = double.MinValue;
foreach (WritingRegionNode region in regions)
{
    if (region.Location.GetBounds().Bottom > maxY)
    {
        maxY = region.Location.GetBounds().Bottom;
        lastRegion = region;
    }
}

if (lastRegion == null)
    return;

// Create a collection to hold this line
ContextNodeCollection lastRegionCollection =
    new ContextNodeCollection(theInkAnalyzer);
lastRegionCollection.Add(lastRegion);

// Find corresponding start and length
int start, length;
theRootNode.GetTextRangeFromNodes(lastRegionCollection, out start, out length);

// Select this in the text box
theResultsTextBox.Text = theRootNode.GetRecognizedString();
theResultsTextBox.Select(start, length);

Plateformes

Windows Vista

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Informations de version

.NET Framework

Pris en charge dans : 3.0

Voir aussi

Référence

RootNode, classe

Membres RootNode

System.Windows.Ink, espace de noms