Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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
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.
RichTextBox harus berisi FlowDocument yang pada gilirannya harus berisi objek turunan Block. Berikut ini adalah segmen yang sesuai dari diagram sebelumnya.
Diagram
Sejauh ini, inilah tampilan markup yang mungkin.
<RichTextBox> <FlowDocument> <!-- One or more Block-derived object… --> </FlowDocument> </RichTextBox>
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:
Markup yang sesuai adalah sebagai berikut.
<RichTextBox> <FlowDocument> <Table> <TableRowGroup> <TableRow> <TableCell> <!-- One or more Block-derived object… --> </TableCell> </TableRow> </TableRowGroup> </Table> </FlowDocument> </RichTextBox>
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:
Diagram
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:
InlineCollection: Mewakili kumpulan Inline elemen. InlineCollection mendefinisikan konten anak yang diizinkan dari Paragraphelemen , Span, dan TextBlock .
BlockCollection: Mewakili kumpulan Block elemen. BlockCollection mendefinisikan konten anak yang diizinkan dari elemen FlowDocument, Section, ListItem, TableCell, Floater, dan Figure.
ListItemCollection: Elemen konten alur yang mewakili item konten tertentu dalam daftar yang diurutkan atau tidak diurutkan List.
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
.NET Desktop feedback