Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Übersicht über Anmerkungen

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 die Elemente FlowDocumentReader und FlowDocumentScrollViewer sowie von DocumentViewerBase abgeleitete Steuerelemente wie DocumentViewer und FlowDocumentPageViewer.

Dieses Thema enthält folgende Abschnitte.

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.


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


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-Element mit Routingbefehlen deklarieren, auf die Benutzer zugreifen können, um Anmerkungen zu erstellen und zu verwalten.


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


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

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 in Form einer Liste von Anmerkungen dargestellt 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 dem das entsprechende Anmerkungsobjekt verankert 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.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2015 Microsoft