Ek açıklamalara Genel Bakış

Yazılı belgelerde Not veya yorum yazmak, neredeyse kendisine verilmek üzere yaptığımız çok önemli bir etkinliktir. Bu notlar veya Yorumlar, bilgilere bayrak eklemek veya daha sonra başvurmak üzere ilgilendiğiniz öğeleri vurgulamak için bir belgeye eklediğimiz "ek açıklamalardır". Yazdırılmış belgelere not yazmak kolaydır ve çok daha kolay olsa da, elektronik belgelere kişisel açıklamalar ekleyebilme özelliği, genellikle çok sınırlı olur.

bu konu başlığı altında, yaygın olarak yapışkan notlar ve önemli birçok ek açıklama türü incelenmiştir ve Microsoft ek açıklama çerçevesinin, Windows Presentation Foundation (WPF) belge görüntüleme denetimleri aracılığıyla uygulamalarda bu ek açıklama türlerini nasıl kolaylaştırdığını gösterir. Ek açıklamaları destekleyen WPF belge görüntüleme denetimleri ve FlowDocumentReaderFlowDocumentScrollViewer , ve ' den türetilmiş denetimler de içerir DocumentViewerBaseDocumentViewerFlowDocumentPageViewer .

Yapışkan Notlar

Tipik bir yapışkan notta, bir belgeye "takılmış" olan küçük bir renkli bir kağıda yazılan bilgiler yer alır. Dijital yapışkan notlar elektronik belgeler için benzer işlevler sağlar, ancak yazılı metin, el yazısı notları (örneğin, Tablet PC "mürekkep" vuruşları) veya Web bağlantıları gibi diğer birçok içerik türünü dahil etmek için eklenen esnekliğe sahiptir.

Aşağıdaki çizimde, bazı açıkton, metin Yapışkan Not ve mürekkep Yapışkan Not ek açıklamalarını gösteren bazı örnekler gösterilmektedir.

Highlight, text and ink sticky note annotations.

Aşağıdaki örnek, uygulamanızda ek açıklama desteğini etkinleştirmek için kullanabileceğiniz yöntemi gösterir.

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

Önemli Noktalar

İnsanlar, bir kağıt belgeyi işaret eden alt çizgi, vurgulama, Circling kelimeleri veya kenar boşluğunda çizim işaretleri veya gösterimler gibi, ilgi çekici öğelere dikkat çekmek için yaratıcı yöntemler kullanır. Microsoft ek açıklamaları çerçevesindeki ek açıklamaları Vurgula WPF belge görüntüleme denetimlerinde görüntülenen bilgileri işaretlemek için benzer bir özellik sağlar.

Aşağıdaki çizimde bir vurgulama ek açıklaması örneği gösterilmektedir.

Highlight Annotation

Kullanıcılar genellikle ilk olarak bir metin veya ilgilendiğiniz öğe seçerek ve ardından ek açıklama seçeneklerini göstermek için sağ tıklanarak ek açıklamalar oluşturur ContextMenu . Aşağıdaki örnek, ContextMenu kullanıcıların ek açıklamalar oluşturup yönetmek için erişebileceği bir yönlendirilmiş komutlarla birlikte bildirmek için kullanabileceğiniz Extensible Application Markup Language (XAML) gösterir.

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

Veri sabitleme

Ek açıklamalar çerçevesi, ek açıklamaları yalnızca görüntü görünümündeki bir konuma değil kullanıcının seçtiği verilere bağlar. Bu nedenle, belge görünümü değişirse (örneğin, Kullanıcı görüntü penceresini kaydırdığında veya yeniden boyutlandırdığında), ek açıklama, bağlandığı veri seçimiyle kalır. Örneğin, aşağıdaki grafik, kullanıcının metin seçiminde yaptığı ek açıklamayı gösterir. Belge görünümü değiştiğinde (kaydırma, yeniden boyutlanıyor, ölçekler veya başka bir şekilde), vurgu ek açıklaması orijinal veri seçimiyle birlikte değişir.

Annotation Data Anchoring

Açıklamalı nesneler ile eşleşen ek açıklamalar

Ek açıklamaların karşılık gelen açıklamalı nesneleriyle eşleşmesini sağlayabilirsiniz. Örneğin, açıklamalar bölmesi olan basit bir belge okuyucu uygulaması düşünün. Açıklamalar bölmesi, bir belgeye sabitlenmiş bir ek açıklama listesinden metin görüntüleyen bir liste kutusu olabilir. Kullanıcı liste kutusunda bir öğe seçerse, uygulama, ilgili ek açıklama nesnesinin sabitlenmiş olduğu belgedeki paragrafı görüntüler.

Aşağıdaki örnek, açıklama bölmesi olarak hizmet veren böyle bir liste kutusunun olay işleyicisinin nasıl uygulanacağını gösterir.

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

Diğer bir örnek senaryo, e-posta aracılığıyla belge okuyucuları arasında ek açıklama ve yapışkan not alışverişi sağlayan uygulamalar içerir. Bu özellik, bu uygulamaların okuyucudaki değiş tokuş edilen ek açıklamanın bulunduğu sayfaya gitmesini sağlar.

Ayrıca bkz.