Oldingi boblarda matnni ko'rsatish uchun TextBlock elementi ishlatilgan. Biroq, bu element murakkab formatlash va inline tasvirlar bilan katta hajmdagi matnlar bilan boy ilovalar yaratish uchun etarli emas. Buning uchun biz foydalanishimiz kerak hujjatlar .
Shunday qilib, WPF-dagi barcha hujjatlar ikki guruhga bo'lingan:
Ruxsat etilgan hujjatlar . Bunday hujjatlarning mazmuni formati va tartibi qat'iy va o'zgartirilishi mumkin emas. Turli xil ekran o'lchamlari bilan turli qurilmalarda kontent bir xil ko'rinadi va optimallashtirilmaydi. Bunday hujjatlar birinchi navbatda chop etish uchun mo'ljallangan. Ruxsat etilgan hujjatlar uchun WPF XPS (XML Paper Specification) dan foydalanadi.
Oqim hujjatlari (oqim hujjatlari) . Ushbu hujjatlar monitor ekranida ko'rish uchun mo'ljallangan. Boshqa tomondan, WPF muayyan muhit sozlamalari uchun hujjatni optimallashtiradi.
Oqimli hujjatlar WPF-dagi oqim hujjatlari FlowDocument klassi bilan ifodalanadi, ular turli oqim elementlarini o'z ichiga olishi mumkin. Bu elementlarning barchasi Button yoki TextBlock kabi standart boshqaruv elementlari emas, ular FrameworkContentElement asosiy sinfidan meros bo‘lib , shuning uchun bog‘lash, animatsiya va boshqalar kabi mexanizmlarni qo‘llab-quvvatlaydi, lekin tartibdan foydalanmaydi. Natijada, oqim elementlarining butun ierarxiyasi quyidagicha ifodalanishi mumkin:
3-rasm.
Hujjat oqimini yaratish FlowDocument obyektidan foydalanish uchun biz uni konteynerlardan biriga joylashtirishimiz kerak - FlowDocumentReader, FlowDocumentPageViewer yoki FlowDocumentScrollViewer. Masalan:
Hello World!
22.05.1984
3-rasm.
Oqim hujjatlarining mazmuni
FlowDocument o'z mazmuni sifatida bir yoki bir nechta oqim elementlarini qabul qiladi. Bu elementlarning barchasi TextElement sinfining merosxo'rlari bo'lib , blok (blok) va kichik (inline) bo'lishi mumkin.
Blok elementlari
Blok elementlariga quyidagilar kiradi: paragraf , ro'yxat , jadval , BlockUIContainer va bo'lim.
Paragraf elementi
Paragraf elementi Inlines to'plamini o'z ichiga oladi , bu esa o'z navbatida matnni emas, balki satr elementlarini ham o'z ichiga oladi. Paragraf matnini ko'rsatish uchun siz Run inline elementidan foydalanishingiz kerak :
Hello World!
Biz Run-dan foydalanmaslikni va xatboshi mazmuniga to'g'ridan-to'g'ri matn yozishni tanlashimiz mumkin bo'lsa-da, bu holda Run elementi faqat bilvosita yaratiladi. Shuning uchun, bu holda, koddagi paragrafning mazmunini olish uchun biz Run elementining matnini olishimiz kerak: