Sdílet prostřednictvím


Přehled poznámek

Psaní poznámek nebo komentářů k papírovým dokumentům je taková běžná aktivita, kterou téměř bereme za udělenou. Tyto poznámky nebo komentáře jsou "poznámky", které přidáme do dokumentu pro označení informací příznakem nebo zvýraznění položek, které jsou zajímavé pro pozdější použití. I když je psaní poznámek na tištěných dokumentech snadné a běžné, možnost přidávat osobní komentáře k elektronickým dokumentům je obvykle velmi omezená, pokud je k dispozici vůbec.

Toto téma se zabývá několika běžnými typy poznámek, konkrétně rychlých poznámek a zvýraznění, a ukazuje, jak rozhraní MicrosoftNots Framework usnadňuje tyto typy poznámek v aplikacích prostřednictvím ovládacích prvků pro prohlížení dokumentů WPF (Windows Presentation Foundation). Ovládací prvky zobrazení dokumentu WPF, které podporují poznámky, a FlowDocumentReader také ovládací prvky odvozené od DocumentViewerBase takových a FlowDocumentPageViewerDocumentViewer .FlowDocumentScrollViewer

Rychlé poznámky

Typická lepkavá poznámka obsahuje informace napsané na malém kusu barevného papíru, který se pak "zasekne" na dokument. Digitální rychlé poznámky poskytují podobné funkce pro elektronické dokumenty, ale s přidanou flexibilitou, která zahrnuje mnoho dalších typů obsahu, jako je napsaný text, rukou psané poznámky (například tahy rukopisu na tabletu PC) nebo webové odkazy.

Následující obrázek ukazuje některé příklady zvýraznění, rychlé poznámky textu a rukopisných poznámek k poznámkám.

Highlight, text and ink sticky note annotations.

Následující příklad ukazuje metodu, kterou můžete použít k povolení podpory poznámek ve vaší aplikaci.

// ------------------------ StartAnnotations --------------------------
/// <summary>
///   Enables annotations and displays all that are viewable.</summary>
private void StartAnnotations()
{
    // If there is no AnnotationService yet, create one.
    if (_annotService == null)
        // docViewer is a document viewing control named in Window1.xaml.
        _annotService = new AnnotationService(docViewer);

    // If the AnnotationService is currently enabled, disable it.
    if (_annotService.IsEnabled == true)
        _annotService.Disable();

    // Open a stream to the file for storing annotations.
    _annotStream = new FileStream(
        _annotStorePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);

    // Create an AnnotationStore using the file stream.
    _annotStore = new XmlStreamStore(_annotStream);

    // Enable the AnnotationService using the new store.
    _annotService.Enable(_annotStore);
}// end:StartAnnotations()
' ------------------------ StartAnnotations --------------------------
''' <summary>
'''   Enables annotations and displays all that are viewable.</summary>
Private Sub StartAnnotations()
    ' If there is no AnnotationService yet, create one.
    If _annotService Is Nothing Then
        ' docViewer is a document viewing control named in Window1.xaml.
        _annotService = New AnnotationService(docViewer)
    End If

    ' If the AnnotationService is currently enabled, disable it.
    If _annotService.IsEnabled = True Then
        _annotService.Disable()
    End If

    ' Open a stream to the file for storing annotations.
    _annotStream = New FileStream(_annotStorePath, FileMode.OpenOrCreate, FileAccess.ReadWrite)

    ' Create an AnnotationStore using the file stream.
    _annotStore = New XmlStreamStore(_annotStream)

    ' Enable the AnnotationService using the new store.
    _annotService.Enable(_annotStore)
End Sub

Nejzajímavější body

Lidé pomocí kreativních metod upoutat pozornost na zajímavé položky, když označí papírový dokument, jako je podtržení, zvýraznění, zakroužkování slov ve větě nebo kreslicí značky nebo notace na okraji. Zvýraznění poznámek v rozhraní MicrosoftNots Framework poskytuje podobnou funkci pro označení informací zobrazených v ovládacích prvcích zobrazení dokumentů WPF.

Následující obrázek ukazuje příklad poznámky ke zvýraznění.

Highlight Annotation

Uživatelé obvykle vytvářejí poznámky tak, že nejdřív vyberou nějaký text nebo položku, která je zajímají, a po kliknutí pravým tlačítkem myši zobrazíte ContextMenu možnosti poznámek. Následující příklad ukazuje jazyk XAML (Extensible Application Markup Language), pomocí kterého můžete deklarovat ContextMenu směrované příkazy, ke kterým mají uživatelé přístup k vytváření a správě poznámek.

<DocumentViewer.ContextMenu>
  <ContextMenu>
    <MenuItem Command="ApplicationCommands.Copy" />
    <Separator />
    <!-- Add a Highlight annotation to a user selection. -->
    <MenuItem Command="ann:AnnotationService.CreateHighlightCommand"
              Header="Add Highlight" />
    <!-- Add a Text Note annotation to a user selection. -->
    <MenuItem Command="ann:AnnotationService.CreateTextStickyNoteCommand"
              Header="Add Text Note" />
    <!-- Add an Ink Note annotation to a user selection. -->
    <MenuItem Command="ann:AnnotationService.CreateInkStickyNoteCommand"
              Header="Add Ink Note" />
    <Separator />
    <!-- Remove Highlights from a user selection. -->
    <MenuItem Command="ann:AnnotationService.ClearHighlightsCommand"
              Header="Remove Highlights" />
    <!-- Remove Text Notes and Ink Notes from a user selection. -->
    <MenuItem Command="ann:AnnotationService.DeleteStickyNotesCommand"
              Header="Remove Notes" />
    <!-- Remove Highlights, Text Notes, Ink Notes from a selection. -->
    <MenuItem Command="ann:AnnotationService.DeleteAnnotationsCommand"
              Header="Remove Highlights &amp; Notes" />
  </ContextMenu>
</DocumentViewer.ContextMenu>

Ukotvení dat

Architektura poznámek sváže poznámky s daty, která uživatel vybere, nejen na pozici v zobrazení zobrazení. Pokud se tedy zobrazení dokumentu změní, například když se uživatel posune nebo změní velikost okna zobrazení, zůstane poznámka s výběrem dat, ke kterému je vázána. Například následující obrázek znázorňuje poznámku, kterou uživatel provedl u výběru textu. Když se zobrazení dokumentu změní (posune se, změní velikost, měřítko nebo jinak přesune), přesune se poznámka zvýraznění s původním výběrem dat.

Annotation Data Anchoring

Odpovídající poznámky s poznámkami anotovanými objekty

Poznámky můžete spárovat s odpovídajícími anotovanými objekty. Představte si například jednoduchou aplikaci pro čtení dokumentů, která obsahuje podokno komentářů. Podokno komentářů může být seznam, který zobrazuje text ze seznamu poznámek ukotvených k dokumentu. Pokud uživatel vybere položku v seznamu, aplikace zobrazí odstavec v dokumentu, ke kterému je odpovídající objekt poznámky ukotven.

Následující příklad ukazuje, jak implementovat obslužnou rutinu události takového seznamu, která slouží jako podokno komentářů.

void annotationsListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{

    Annotation comment = (sender as ListBox).SelectedItem as Annotation;
    if (comment != null)
    {
        // IAnchorInfo info;
        // service is an AnnotationService object
        // comment is an Annotation object
        info = AnnotationHelper.GetAnchorInfo(this.service, comment);
        TextAnchor resolvedAnchor = info.ResolvedAnchor as TextAnchor;
        TextPointer textPointer = (TextPointer)resolvedAnchor.BoundingStart;
        textPointer.Paragraph.BringIntoView();
    }
}
Private Sub annotationsListBox_SelectionChanged(ByVal sender As Object, ByVal e As SelectionChangedEventArgs)

    Dim comment As Annotation = TryCast((TryCast(sender, ListBox)).SelectedItem, Annotation)
    If comment IsNot Nothing Then
        ' service is an AnnotationService object
        ' comment is an Annotation object
        info = AnnotationHelper.GetAnchorInfo(Me.service, comment)
        Dim resolvedAnchor As TextAnchor = TryCast(info.ResolvedAnchor, TextAnchor)
        Dim textPointer As TextPointer = CType(resolvedAnchor.BoundingStart, TextPointer)
        textPointer.Paragraph.BringIntoView()
    End If
End Sub

Další ukázkový scénář zahrnuje aplikace, které umožňují výměnu poznámek a rychlých poznámek mezi čtenáři dokumentů e-mailem. Tato funkce umožňuje těmto aplikacím přejít na stránku, která obsahuje poznámku, která se vyměňuje.

Viz také