Freigeben über


Übersicht über Anmerkungen

Aktualisiert: November 2007

Das Niederschreiben von Notizen und Kommentaren auf Papierdokumenten ist eine so häufige Tätigkeit, dass sie als selbstverständlich vorausgesetzt wird. Bei diesen Notizen und Kommentaren handelt es sich um "Anmerkungen", die Dokumenten zur Markierung von Informationen oder zur Kennzeichnung wichtiger Elemente hinzugefügt werden. Im Gegensatz zum Schreiben von Notizen auf gedruckte Dokumente ist das Hinzufügen von Notizen in elektronischen Dokumenten oft nur sehr eingeschränkt oder nicht möglich.

Dieses Thema bietet eine Übersicht über verschiedene häufig verwendete Anmerkungstypen, insbesondere Kurznotizen und Hervorhebungen, und zeigt, wie Microsoft Annotations Framework diese Anmerkungstypen in Anwendungen über die Windows Presentation Foundation (WPF)-Dokumentanzeigesteuerelemente ermöglicht. Zu den WPF-Dokumentanzeigesteuerelementen, die Anmerkungen unterstützen, gehören FlowDocumentReader und FlowDocumentScrollViewer sowie von DocumentViewerBase abgeleitete Steuerelemente wie DocumentViewer und FlowDocumentPageViewer.

Dieses Thema enthält folgende Abschnitte.

  • Kurznotizen
  • Hervorhebungen
  • Verankerung mit Daten
  • Zuordnen von Anmerkungen zu Objekten
  • Verwandte Abschnitte

Kurznotizen

Eine typische Haftnotiz ist ein kleines Stück farbiges Papier mit Informationen, das auf ein Dokument geklebt werden kann. Digitale Kurznotizen bieten eine ähnliche Funktion für elektronische Dokumente, mit der zusätzlichen Flexibilität, viele andere Inhaltstypen zu verwenden, wie über die Tastatur eingegebenen Text, handschriftliche Notizen (z. B. Tablet PC-Freihandeingaben) und Weblinks.

Die folgende Abbildung zeigt einige Beispiele für Hervorhebungen, Kurznotizen mit Text und Kurznotizen mit Freihandeingabe.

Textmarker-, Text- und Freihandnotizanmerkungen

Das folgende Beispiel zeigt die Methode, mit der Sie die Unterstützung von Anmerkungen in Ihrer Anwendung aktivieren können. Das vollständige Beispiel finden Sie unter Beispiel für DocumentViewer mit Anmerkungen im XML-Speicher und Beispiel für DocumentViewer mit Anmerkungen im XPS-Speicher.

// ------------------------ 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()

Hervorhebungen

Auf Papierdokumenten sind Ihrer Kreativität bei der Markierung von Elementen keine Grenzen gesetzt: Sie können Informationen unterstreichen, mit einem Textmarker hervorheben, Wörter in einem Satz einkreisen, Zeichen und Notizen am Rand hinzufügen usw. Die Hervorhebungen in Microsoft Annotations Framework bieten eine ähnliche Funktion zur Markierung von Informationen in WPF-Dokumentanzeigesteuerelementen.

Die folgende Abbildung zeigt ein Beispiel für eine Hervorhebung.

Anmerkung hervorheben

In der Regel erstellen Benutzer Anmerkungen, indem sie zunächst einen Textbereich oder ein Element auswählen und dann mit der rechten Maustaste klicken, um ein ContextMenu mit Anmerkungsoptionen anzuzeigen. Das folgende Beispiel zeigt, wie Sie mit Extensible Application Markup Language (XAML) ein ContextMenu mit Routingbefehlen deklarieren, auf die Benutzer zugreifen können, um Anmerkungen zu erstellen und zu verwalten. Das vollständige Beispiel finden Sie unter Beispiel für DocumentViewer mit Anmerkungen im XPS-Speicher.

<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>

Verankerung mit Daten

Annotations Framework bindet Anmerkungen an die vom Benutzer ausgewählten Daten, nicht nur an die Position in der Anzeige. Wenn der Benutzer die Dokumentansicht durch Scrollen oder Zoomen ändert, verbleibt die Anmerkung mit den Daten, an die sie gebunden ist. Die folgende Abbildung zeigt eine Anmerkung, die ein Benutzer für einen Textausschnitt erstellt hat. Bei Änderung der Dokumentansicht bewegt sich die Hervorhebung mit den ausgewählten Daten.

Anmerkungsdaten-Verankerung

Zuordnen von Anmerkungen zu Objekten

Sie können Anmerkungen den entsprechenden Objekten zuordnen. Nehmen Sie an, Sie haben eine einfache Anwendung zum Lesen von Dokumenten, die über einen Kommentarbereich verfügt. Der Kommentarbereich kann ein Listenfeld sein, in dem der Text einer Liste von Anmerkungen angezeigt wird, die in einem Dokument verankert sind. Wenn ein Element im Listenfeld vom Benutzer ausgewählt wird, zeigt die Anwendung den Abschnitt im Dokument an, an den das entsprechende Anmerkungsobjekt gebunden ist.

Im folgenden Beispiel wird veranschaulicht, wie der Ereignishandler eines solchen Listenfelds implementiert wird, das als Kommentarbereich dient.

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();
    }
}

Ein weiteres Beispiel sind Anwendungen, die den Austausch von Anmerkungen und Kurznotizen zwischen Dokument-Readern per E-Mail ermöglichen. Diese Funktion ermöglicht den Anwendungen, im Reader zu der Seite zu navigieren, die die ausgetauschte Anmerkung enthält.

Siehe auch

Aufgaben

Gewusst wie: Hinzufügen eines Befehls zu einem MenuItem

Beispiel für DocumentViewer mit Anmerkungen im XPS-Speicher

Beispiel für DocumentViewer mit Anmerkungen im XML-Speicher

Beispiel für die Formatierung von Anmerkungen

Beispiel für die Dokumentserialisierung

Konzepte

Annotations-Schema

Übersicht über ContextMenu

Befehlsübersicht

Übersicht über Flussdokumente

Referenz

DocumentViewerBase

DocumentViewer

FlowDocumentPageViewer

FlowDocumentScrollViewer

FlowDocumentReader

IAnchorInfo