ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 27.09.2019

Просмотров: 134

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

№ 4_5  Ð¡Ð¾Ð·Ð´Ð°Ð½Ð¸Ðµ WPF Ñ‚екстового Ñ€ÐµÐ´Ð°ÐºÑ‚ора  

Задание 

Создать  Ð¼Ð½Ð¾Ð³Ð¾Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚ный  Ñ‚екстовый  Ñ€ÐµÐ´Ð°ÐºÑ‚ор  Ð½Ð°  Ð¾ÑÐ½Ð¾Ð²Ðµ  ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° 

проекта WPF. Ð¢Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ: 

1)

 

Должен 

поддерживать 

динамический 

интерфейс. 

Панели 

инструментов,  Ð¼ÐµÐ½ÑŽ,  Ð¾ÑÐ½Ð¾Ð²Ð½Ð¾Ðµ  Ð¾ÐºÐ½Ð¾  Ð¸  Ð´Ñ€.  ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ñ‹  Ð´Ð¾Ð»Ð¶Ð½Ñ‹ 
изменяться  Ð¿Ñ€Ð¾Ð¿Ð¾Ñ€Ñ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ð¾  Ñ€Ð°Ð·Ð¼ÐµÑ€Ð°Ð¼  Ð¾ÐºÐ½Ð°.    Ð˜ÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐ¹Ñ‚е 
вложенные ÐºÐ¾Ð½Ñ‚ейнеры ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²ÐºÐ¸ (Grid, StrackPanel, DockPanel  Ð¸ 
т.д.)  Ð¸ ÑÐ²Ð¾Ð¹ÑÑ‚ва. 

2)

 

Должен ÑÐ¾Ð´ÐµÑ€Ð¶Ð°Ñ‚ÑŒ Ð¼ÐµÐ½ÑŽ ( 

<

Menu

>

 

            

<

MenuItem

 Header

="_File"

 x

:

Name

="File">

 

                

<

MenuItem

 Header

=" _Save"

 x

:

Name

="Save"/>...

)  

и  Ð´ÑƒÐ±Ð»Ð¸Ñ€ÑƒÑŽÑ‰ÑƒÑŽ  Ð¿Ð°Ð½ÐµÐ»ÑŒ  Ð¸Ð½ÑÑ‚рументов: 

File

 



 

New

Save,  Open

 

(используйте  ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ñ‹Ðµ  Ð´Ð¸Ð°Ð»Ð¾Ð³Ð¸  Ð¾Ñ‚крытия  OpenFileDialog  Ð¸ 
сохранения  Ñ‚екстового  Ñ„айла  SaveFileDialog), 

Edit 



 

Copy, 

Paste

 (поддержка Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ð±ÑƒÑ„ером Ð¾Ð±Ð¼ÐµÐ½Ð°, ÐºÑ€Ð¾Ð¼Ðµ Ñ‚ого Ð­Ð£ RichTextBox 

поддерживает  Ð¼ÐµÑ‚оды  Copy(),  Paste(),  Undo(),  Cut(),  SpellCheck, 
форматы,  Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ,  Ð¿Ð°Ñ€Ð°Ð³Ñ€Ð°Ñ„Ñ‹,  Ð±Ð»Ð¾ÐºÐ¸,  ÑÑ‚или,  Ð¿Ð¾Ð¸ÑÐº  Ð¸  Ð·Ð°Ð¼ÐµÐ½Ñƒ    Ð¸ 
т.д), 

Font

 Ð¸ 

Color 

(реализует ÑÑ‚андартные Ð´Ð¸Ð°Ð»Ð¾Ð³Ð¸ Ð½Ð°ÑÑ‚ройки ÑˆÑ€Ð¸Ñ„та Ð¸ 

выбора Ñ†Ð²ÐµÑ‚а Ð´Ð»Ñ 

выделенного Ñ„рагмента

)   Ð° Ñ‚акже Combox (содержит 

перечисление Ð¸Ð· 4-6 ÑˆÑ€Ð¸Ñ„тов) Ð¸ Slider (устанавливает Ñ€Ð°Ð·Ð¼ÐµÑ€ ÑˆÑ€Ð¸Ñ„та) Ð¸  
три  ToggleButton, ÐºÐ¾Ñ‚орые ÑƒÑÑ‚анавливают FontStyles  Ð¶Ð¸Ñ€Ð½Ñ‹Ð¹, ÐºÑƒÑ€ÑÐ¸Ð² Ð¸ 
подчеркивание. 

<

ToolBar

>

 

            

<

Button

 x

:

Name

="_Save"

 ToolTip

="Save"

 Command

="Edit.Save">

 

                

<

Image

 Source

="files/3.jpg"

 Height

="20"

 Width

="20" />

 

            

</

Button

>

 

            

<

ToggleButton

> ...

 

 
Добавьте  ÑÑ‚Ñ€Ð¾ÐºÑƒ  ÑÐ¾ÑÑ‚ояния  Ñ  Ð¸Ð½Ñ„ормацией  Ð¾  Ñ‡Ð¸ÑÐ»Ðµ  ÑÐ¸Ð¼Ð²Ð¾Ð»Ð¾Ð²  (слов)  Ð¸ 
slider -ом масштабирования.  
Можно 

использовать 

 Ribbon 

control 

из 

библиотеки 

RibbonControlsLibrary.dll  
Все действия  Ñ€ÐµÐ´Ð°ÐºÑ‚ора должны Ð±Ñ‹Ñ‚ÑŒ Ñ€ÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ñ‹ Ñ‡ÐµÑ€ÐµÐ· Command. 

3)

 

В  Ð¾Ð±Ð»Ð°ÑÑ‚и  Ð²Ð²Ð¾Ð´Ð°  Ñ‚екста  (проще  Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÑŒ  Ð­Ð£    RichTextBox) 
должны  Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°Ñ‚ься  drag-and-drop  (например,  Ð¿ÐµÑ€ÐµÑ‚аскивание 
файла в Ñ€ÐµÐ´Ð°ÐºÑ‚ор Ð¸Ð»Ð¸ Ñ‚екстового Ð±Ð»Ð¾ÐºÐ°). 

4)

 

 ÐŸÑ€Ð¸  ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ð¸  Ð½Ð¾Ð²Ð¾Ð³Ð¾  Ð¾ÐºÐ½Ð°  Ðº  Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑƒ  Ð¾ÐºÐ½Ð°  Ð¿Ð¾ÑÐ»ÐµÐ´Ð¾Ð²Ð°Ñ‚ельно 
добавляется  Ð½Ð¾Ð¼ÐµÑ€  ÑÐ¾Ð·Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾  Ð¾ÐºÐ½Ð°  Ð¸  Ð¿Ñ€Ð¸ÑÐ²Ð°Ð¸Ð²Ð°ÐµÑ‚ся  Ð¸Ð¼Ñ  Ð¿Ð¾ 
умолчанию  (например:  Window1  Window2  Ð¸  Ñ‚.д.).    ÐŸÑ€Ð¸  Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐµ 
файла  Ð²  Ð¾ÐºÐ½Ð¾  â€“  Ð²  Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐµ  Ð¾Ñ‚ображается  Ð¿Ð¾Ð»Ð½Ñ‹Ð¹  Ð¿ÑƒÑ‚ÑŒ  Ð¸  Ð¸Ð¼Ñ 


background image

файла. ÐšÑ€Ð¾Ð¼Ðµ  ÑÑ‚ого,  Ð¾ÐºÐ½Ð¾  Ð´Ð¾Ð»Ð¶Ð½Ð¾  ÑÐ¾Ð´ÐµÑ€Ð¶Ð°Ñ‚ÑŒ  ÐºÐ¾Ð½Ñ‚екстное  Ð¼ÐµÐ½ÑŽ  Ñ 
командами : 

Close

 (текущее окно) Ð¸ 

Copy, Delete  Ð¸ Ñ‚.д

5)

 

Добавьте Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÑƒ Ð´Ð²ÑƒÑ… ÑÐ·Ñ‹ÐºÐ¾Ð² Ð¸Ð½Ñ‚ерфейса  (например, Ñ€ÑƒÑÑÐºÐ¸Ð¹ Ð¸ 
английский). Ð”олжна Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°Ñ‚ься Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑÐºÐ°Ñ Ð»Ð¾ÐºÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° 
основе Resource Dictionary. 

6)

 

Подгрузить Ð² Ñ€ÐµÐ´Ð°ÐºÑ‚ор ÑÐ²Ð¾Ð¹ ÐºÑƒÑ€ÑÐ¾Ñ€ Ð¸ Ð½Ð°Ñ€Ð¸ÑÐ¾Ð²Ð°Ð½Ð½ÑƒÑŽ ÑÐ²Ð¾ÑŽ Ð¸ÐºÐ¾Ð½ÐºÑƒ Ð´Ð»Ñ 
приложения. 

7)

 

Создайте 

стиль 

для Ð²Ð°ÑˆÐµÐ³Ð¾ Ñ€ÐµÐ´Ð°ÐºÑ‚ора Ð¸ Ð¿Ñ€Ð¸Ð¼ÐµÐ½Ð¸Ñ‚е его. 

 

Пример: 

  

 

Стандартные классы Ð´Ð¸Ð°Ð»Ð¾Ð³Ð¾Ð² 

 
OpenFileDialog  Ð¸Ð»Ð¸  SaveFileDialog  Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑŽÑ‚ся  Ð´Ð»Ñ  ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ 

местоположения Ð¸ Ð¸Ð¼ÐµÐ½Ð¸ Ñ„айла, Ð° Ð·Ð°Ñ‚ем Ñ‚екст Ð·Ð°Ð³Ñ€ÑƒÐ¶Ð°ÐµÑ‚ся Ð¸Ð»Ð¸ ÑÐ¾Ñ…раняется Ñ 
помощью  Ð¾Ð±ÑŠÐµÐºÑ‚а  TextRange,  ÐºÐ¾Ñ‚орый  Ð¼Ñ‹  Ð¿Ð¾Ð»ÑƒÑ‡Ð°ÐµÐ¼  Ð½ÐµÐ¿Ð¾ÑÑ€ÐµÐ´ÑÑ‚венно  Ð¸Ð· 
RichTextBox.  ÐžÐ½  Ð¾Ð±ÐµÑÐ¿ÐµÑ‡Ð¸Ð²Ð°ÐµÑ‚  Ð´Ð¾ÑÑ‚уп  Ðº  Ñ„изическому  Ñ„айлу.  Ð¤Ð°Ð¹Ð» 
загружается  Ð¸    ÑÐ¾Ñ…раняется  Ð²  Ñ„ормате  RTF,  Ð½Ð¾  Ð²Ñ‹  Ð¼Ð¾Ð¶ÐµÑ‚е  ÑƒÐºÐ°Ð·Ð°Ñ‚ÑŒ  Ð¾Ð´Ð¸Ð½  Ð¸Ð· 
других Ñ„орматов. 

 
 

using

 Microsoft.Win32; 

OpenFileDialog

 dlg = 

new

 

OpenFileDialog

(); 

            dlg.Filter = 

"Rich Text Format (*.rtf)|*.rtf|All files (*.*)|*.*"

            

if

 (dlg.ShowDialog() == 

true

            { 
                

FileStream

 fileStream = 

new

 

FileStream

(dlg.FileName, 

FileMode

.Open); 

                

TextRange

 range = 

new

 

TextRange

(rtbEditor.Document.ContentStart, 

rtbEditor.Document.ContentEnd); 
                range.Load(fileStream, 

DataFormats

.Rtf); 

            } 
 

SaveFileDialog

 dlg = 

new

 

SaveFileDialog

(); 

            dlg.Filter = 

"Rich Text Format (*.rtf)|*.rtf|All files (*.*)|*.*"

            

if

 (dlg.ShowDialog() == 

true

            { 
                

FileStream

 fileStream = 

new

 

FileStream

(dlg.FileName, 

FileMode

.Create); 


background image

                

TextRange

 range = 

new

 

TextRange

(rtbEditor.Document.ContentStart, 

rtbEditor.Document.ContentEnd); 
                range.Save(fileStream, 

DataFormats

.Rtf); 

            }