Bagikan melalui


Gambaran Umum Model Konten TextElement

Gambaran umum model konten ini menjelaskan konten yang didukung untuk TextElement. Kelas Paragraph adalah jenis TextElement. Model konten menjelaskan objek atau elemen apa saja yang dapat dimuat dalam elemen lainnya. Gambaran umum ini merangkum model konten yang digunakan untuk objek yang berasal dari TextElement. Untuk informasi selengkapnya, lihat Gambaran Umum Dokumen Alur.

Diagram Model Konten

Diagram berikut ini meringkas model konten untuk kelas yang berasal dari TextElement serta bagaimana non-kelas TextElement lain cocok dengan model ini.

Diagram : Skema penampungan konten alur

Seperti yang dapat dilihat dari diagram sebelumnya, anak-anak yang diperbolehkan dalam elemen belum tentu ditentukan oleh apakah kelas diturunkan dari kelas Block atau kelas Inline. Misalnya, Span ( Inlinekelas turunan) hanya dapat memiliki Inline elemen anak, tetapi Figure (juga Inlinekelas turunan) hanya dapat memiliki Block elemen anak. Oleh karena itu, diagram berguna untuk menentukan dengan cepat elemen apa yang dapat dikandung di elemen lain. Sebagai contoh, mari kita gunakan diagram untuk menentukan cara membuat alur konten dari RichTextBox.

  1. RichTextBox harus berisi FlowDocument yang pada gilirannya harus berisi objek turunan Block. Berikut ini adalah segmen yang sesuai dari diagram sebelumnya.

    Diagram : Aturan penahanan RichTextBox

    Sejauh ini, inilah tampilan markup yang mungkin.

    <RichTextBox>
      <FlowDocument>
        <!-- One or more Block-derived object… -->
      </FlowDocument>
    </RichTextBox>
    
  2. Menurut diagram, ada beberapa Block elemen yang dapat dipilih termasuk Paragraph, , Section, TableList, dan BlockUIContainer (lihat Kelas turunan blok dalam diagram sebelumnya). Katakanlah kita ingin sebuah Table. Menurut diagram sebelumnya, sebuah Table mengandung TableRowGroup yang berisi elemen TableRow, yang mengandung elemen TableCell yang berisi objek turunan Block. Berikut ini adalah segmen yang sesuai untuk Table diambil dari diagram sebelumnya.

    Diagram: Skema induk/turunan untuk Tabel

    Markup yang sesuai adalah sebagai berikut.

    <RichTextBox>
      <FlowDocument>
        <Table>
          <TableRowGroup>
            <TableRow>
              <TableCell>
                <!-- One or more Block-derived object… -->
              </TableCell>
            </TableRow>
          </TableRowGroup>
        </Table>
      </FlowDocument>
    </RichTextBox>
    
  3. Sekali lagi, satu atau beberapa Block elemen diperlukan di bawah TableCell. Untuk membuatnya sederhana, mari kita tempatkan beberapa teks di dalam sel. Kita dapat melakukan ini menggunakan Paragraph dengan elemen Run. Berikut ini adalah segmen yang sesuai dari diagram yang menunjukkan bahwa Paragraph dapat mengambil Inline elemen dan bahwa Run ( Inline elemen) hanya dapat mengambil teks biasa.

    Diagram: Skema induk-anak untuk Paragraf

    Diagram : Skema Induk/Anak untuk Jalankan

Berikut ini adalah seluruh contoh markup secara lengkap.

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <RichTextBox>
    <FlowDocument>
      
      <!-- Normally a table would have multiple rows and multiple
           cells but this code is for demonstration purposes.-->
      <Table>
        <TableRowGroup>
          <TableRow>
            <TableCell>
              <Paragraph>

                <!-- The schema does not actually require
                     explicit use of the Run tag in markup. It 
                     is only included here for clarity. -->
                <Run>Paragraph in a Table Cell.</Run>
              </Paragraph>
            </TableCell>
          </TableRow>
        </TableRowGroup>
      </Table>

    </FlowDocument>
  </RichTextBox>
</Page>

Bekerja dengan Konten TextElement Secara Terprogram

Konten dari TextElement terdiri dari koleksi dan sehingga secara terprogram memanipulasi konten TextElement objek dilakukan dengan bekerja dengan koleksi ini. Ada tiga koleksi berbeda yang digunakan oleh TextElement kelas -derived:

Anda dapat memanipulasi (menambahkan atau menghapus item) dari koleksi ini menggunakan properti Sisipan, Blok, dan ItemDaftar masing-masing. Contoh berikut menunjukkan cara memanipulasi konten Span menggunakan properti Inlines.

Nota

Tabel menggunakan beberapa koleksi untuk memanipulasi kontennya, tetapi tidak tercakup di sini. Untuk informasi selengkapnya, lihat Gambaran Umum Tabel.

Contoh berikut membuat objek baru Span, lalu menggunakan metode Add untuk menambahkan dua baris teks sebagai anak konten dari Span.

Span spanx = new Span();
spanx.Inlines.Add(new Run("A bit of text content..."));
spanx.Inlines.Add(new Run("A bit more text content..."));
Dim spanx As New Span()
spanx.Inlines.Add(New Run("A bit of text content..."))
spanx.Inlines.Add(New Run("A bit more text content..."))

Contoh berikut membuat elemen Run baru dan menyisipkannya di awal Span.

Run runx = new Run("Text to insert...");
spanx.Inlines.InsertBefore(spanx.Inlines.FirstInline, runx);
Dim runx As New Run("Text to insert...")
spanx.Inlines.InsertBefore(spanx.Inlines.FirstInline, runx)

Contoh berikut menghapus elemen Inline terakhir di Span.

spanx.Inlines.Remove(spanx.Inlines.LastInline);
spanx.Inlines.Remove(spanx.Inlines.LastInline)

Contoh berikut menghapus semua konten ( elemenInline) dari Span.

spanx.Inlines.Clear();
spanx.Inlines.Clear()

Tipe yang berbagi model isi ini

Jenis berikut mewarisi dari TextElement kelas dan dapat digunakan untuk menampilkan konten yang dijelaskan dalam gambaran umum ini.

Bold, , Figure, FloaterHyperlink, InlineUIContainer, Italic, LineBreak, List, ListItem, Paragraph, Run, Section, Span, , Table, Underline.

Perhatikan bahwa daftar ini hanya menyertakan jenis nonabstrak yang didistribusikan dengan Windows SDK. Anda dapat menggunakan jenis lain yang mewarisi dari TextElement.

Tipe yang Bisa Berisi Objek TextElement

Lihat Model Konten WPF.

Lihat juga