Oqimli va sobit hujjatlar izohlar kabi funksiyalarni qo‘llab-quvvatlaydi. Izohlar sizga hujjatlarga sharhlar qo'shish, matnning ayrim qismlarini ajratib ko'rsatish va h.k. imkonini beradi.
Izohlar bilan ishlash uchun biz quyidagi interfeys belgilarini aniqlaymiz:
В 1808 году император Александр ездил в Эрфурт для новой встречи с Наполеоном,
и в высшем свете много говорили о важности этого события.
В 1809 году близость двух «властелинов мира», как называли Александра и Наполеона,
дошла до того, что когда Наполеон объявил войну Австрии, русский корпус выступил за границу,
чтобы сражаться на стороне бывшего противника против бывшего союзника, австрийского императора.
Shunday qilib, keling, boshidan boshlaylik. Qatorda xmlns:a="clr-namespace:System.Windows.Annotations;assembly=PresentationFramework"biz izohlar uchun nom maydonini kiritamiz va uni prefiksga joylashtiramiz a. Keyinchalik, asboblar panelida biz izohlarni boshqaradigan bir qator tugmalar yaratamiz. Birinchi tugma matn izohini yaratish uchun. Buning uchun biz AnnotationService.CreateTextStickyNoteCommand buyrug'idan foydalanamiz . AnnotationService obyektida bir xil nomdagi usuldan ham foydalanishimiz va kodda izoh yaratishimiz mumkin. Keyin, keyingi tugmalar uchun biz grafik izoh yaratish, rang bilan ajratib ko'rsatish va izohlarni olib tashlash uchun buyruqlar qo'shamiz. Shuni esda tutingki, ajratib ko'rsatish uchun biz buyruqqa parametr o'tkazamiz - bu holda rang CommandParameter="{x:Static Brushes.Yellow}".
Hammasi bo'lib bizda izohlar uchun oltita buyruq mavjud:
AnnotationService.ClearHighlightsCommand: ta'kidlashni olib tashlaydi
Shu bilan birga, biz tugmalar uchun bosish moslamalarini belgilashimiz shart emas, chunki izoh buyruqlari biz uchun hamma narsani qiladi.
Barcha asosiy izoh sinflari System.Windows.Annotations nom maydonida saqlanadi . Ilovamiz uchun izohlar mavjud bo'lishi uchun biz ularni kiritishimiz kerak. Ulanishni oynani yuklash hodisasi ishlov beruvchisida amalga oshiramiz. Shuningdek, biz oynani yopish ishlovchisida ilovadan izoh qo'llab-quvvatlashni olib tashlaymiz:
using System.IO;
using System.Windows;
using System.Windows.Annotations;
using System.Windows.Annotations.Storage;
namespace AnnotationApp
{
public partial class MainWindow : Window
{
FileStream fs;
AnnotationService anService;
Shunday qilib, ushbu kodda biz annotatsiya xizmatini yaratamiz (klass AnnotationService ) va hujjat konteyneri ob'ektini uning konstruktoriga o'tkazamiz. Bu holda biz xaml-da aniqlangan FlowDocumentScrollViewer ob'ektini ifodalovchi docViewer o'zgaruvchisidan o'tmoqdamiz. Keyin biz izohlar do'konini yaratadigan mavzuni yaratamiz - AnnotationStore . Enable usulidan foydalanib , biz docViewer ob'ekti uchun izohli xotirani mavjud qilamiz. E'tibor bering, bitta hujjat konteyneri uchun biz bitta AnnotationService va bitta AnnotationStore ob'ektini yaratishimiz mumkin. Yangi hujjat uchun siz ushbu ob'ektlarni qayta yaratishingiz kerak bo'ladi. storage.xml fayli biz uchun izohlarni saqlaydi, keyinchalik ular hujjatga yuklanadi. U hali yaratilmagan, shuning uchun OpenOrCreate rejimini o'rnatamiz.
Endi dasturni yuklaymiz va matnning bir qismini tanlaymiz - yuqoridagi buyruqlar bilan tugmalar biz uchun mavjud bo'ladi. Keling, izoh yaratishga harakat qilaylik:
3-rasm.
Ilovani yopgandan so'ng, bizning izohimiz faylga saqlanadi va dastur yana ochilganda u hujjatga yuklanadi.
Nazorat savollari