Condividi tramite


Classe WritingRegionNode

Aggiornamento: novembre 2007

Rappresenta un gruppo di paragrafi con orientamento simile.

Spazio dei nomi:  Microsoft.Ink
Assembly:  Microsoft.Ink.Analysis (in Microsoft.Ink.Analysis.dll)

Sintassi

'Dichiarazione
Public NotInheritable Class WritingRegionNode _
    Inherits ContextNode
'Utilizzo
Dim instance As WritingRegionNode
public sealed class WritingRegionNode : ContextNode
public ref class WritingRegionNode sealed : public ContextNode
public final class WritingRegionNode extends ContextNode
public final class WritingRegionNode extends ContextNode

Note

Un'area della scrittura ha un solo ordine di lettura, ad esempio dall'alto verso il basso.

Nello stesso documento sulla stessa pagina possono coesistere diverse aree di scrittura se hanno orientamenti diversi. Ad esempio, se un utente scrive delle note principalmente in orizzontale, ma anche alcune parole in diagonale in un angolo, per queste ultime viene considerato un orientamento diverso. Per il testo in diagonale viene creato un nuovo oggetto WritingRegion.

In un oggetto WritingRegionNode possono essere contenuti i seguenti tipi di elementi figlio:

  • Qualsiasi numero di oggetti ParagraphNode.

  • Qualsiasi numero di nodi con un valore Guid sconosciuto.

Per ulteriori informazioni, vedere l'argomento concettuale su WritingRegion e AlignmentLevel.

Esempi

Nell'esempio seguente viene utilizzato un oggetto TextBox, selectedResultsTextBox, la cui proprietà Text è stata precedentemente impostata sul valore restituito dall'oggetto GetRecognizedString per un oggetto WritingRegionNode, writingRegion. L'utente ha selezionato del testo nell'oggetto TextBox. Nel codice di esempio viene contrassegnato l'oggetto Strokes che corrisponde a tale selezione.

' Find out what's been selected in the text box
Dim selectionStart As Integer = selectedResultsTextBox.SelectionStart
Dim selectionLength As Integer = selectedResultsTextBox.SelectionLength

' Return if no text is selected.
' selectionLength must be > 0 or GetNodesFromTextRange(...) 
' will throw an ArgumentOutOfRangeException
If selectionLength = 0 Then
    Return
End If

' Get the nodes that correspond to that range
Dim selectedRegionSubNodes As ContextNodeCollection = _
    writingRegion.GetNodesFromTextRange(selectionStart, selectionLength)

' Use the new start and length value to update the
' selection in the TextBox
selectedResultsTextBox.SelectionStart = selectionStart
selectedResultsTextBox.SelectionLength = selectionLength

' First, set all strokes to black
Dim inkStroke As Stroke
For Each inkStroke In writingRegion.Strokes
    inkStroke.DrawingAttributes = New DrawingAttributes(Color.Black)
Next inkStroke
' Next, set all selected sub nodes to red
Dim node As ContextNode
For Each node In selectedRegionSubNodes
    For Each inkStroke In node.Strokes
        inkStroke.DrawingAttributes = New DrawingAttributes(Color.Red)
    Next inkStroke
Next node
                    // Find out what's been selected in the text box
                    int selectionStart = selectedResultsTextBox.SelectionStart;
                    int selectionLength = selectedResultsTextBox.SelectionLength;

                    // Return if no text is selected.
                    // selectionLength must be > 0 or GetNodesFromTextRange(...) 
                    // will throw an ArgumentOutOfRangeException
                    if (selectionLength == 0)
                        return;

                    // Get the nodes that correspond to that range
                    ContextNodeCollection selectedRegionSubNodes =
                            writingRegion.GetNodesFromTextRange(ref selectionStart, ref selectionLength);


                    // Use the new start and length value to update the
                    // selection in the TextBox
                    selectedResultsTextBox.SelectionStart = selectionStart;
                    selectedResultsTextBox.SelectionLength = selectionLength;

                    // First, set all strokes to black
                    foreach (Stroke stroke in writingRegion.Strokes)
                        stroke.DrawingAttributes =
                                    new DrawingAttributes(Color.Black);
                    // Next, set all selected sub nodes to red
                    foreach (ContextNode node in selectedRegionSubNodes)
                    {
                        foreach (Stroke stroke in node.Strokes)
                        {
                            stroke.DrawingAttributes =
                                    new DrawingAttributes(Color.Red);
                        }
                    }

Gerarchia di ereditarietà

System.Object
  Microsoft.Ink.ContextNode
    Microsoft.Ink.WritingRegionNode

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Piattaforme

Windows Vista

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Informazioni sulla versione

.NET Framework

Supportato in: 3.0

Vedere anche

Riferimenti

Membri WritingRegionNode

Spazio dei nomi Microsoft.Ink