Читаем Язык программирования C#9 и платформа .NET5 полностью

Ваш элемент управления ToolBar образован из двух элементов управления Button, которые предназначены для обработки тех же самых событий теми же методами из файла кода. С помощью такого приема можно дублировать обработчики для обслуживания и пунктов меню, и кнопок панели инструментов. Хотя в данной панели применяются типичные нажимаемые кнопки, вы должны принимать во внимание, что тип ToolBar "является" ContentControl, а потому на его поверхность можно помещать любые типы (скажем, раскрывающиеся списки, изображения и графику). Еще один интересный аспект связан с тем, что кнопка Check (Проверить) поддерживает специальный курсор мыши через свойство Cursor.

На заметку! Элемент Toolbar может быть дополнительно помещен внутрь элемента ToolBarTray, который управляет компоновкой, стыковкой и перетаскиванием для набора объектов ToolBar.

<p id="AutBody_Root1131"><strong>Построение строки состояния</strong></p>

Элемент управления строкой состояния (StatusBar) стыкуется с нижней частью DockPanel и содержит единственный элемент управления TextBlock, который ранее в главе не использовался. Элемент TextBlock можно применять для хранения текста с форматированием вроде выделения полужирным и подчеркивания, добавления разрывов строк и т.д. Поместите приведенную ниже разметку сразу после предыдущего определения элемента управления ToolBar:

 

   

 

<p id="AutBody_Root1132"><strong>Завершение проектирования пользовательского интерфейса</strong></p>

Финальный аспект проектирования нашего пользовательского интерфейса связан с определением поддерживающего разделители элемента Grid, в котором определены две колонки. Слева находится элемент управления Expander, помещенный внутрь StackPanel, который будет отображать список предполагаемых вариантов правописания, а справа — элемент TextBox с поддержкой многострочного текста, линеек прокрутки и включенной проверкой орфографии. Элемент Grid может быть целиком размещен в левой части родительской панели DockPanel. Чтобы завершить определение пользовательского интерфейса окна, добавьте следующую разметку XAML, расположив ее непосредственно под разметкой, которая описывает StatusBar:

 

 

   

   

 

  

 

   

     Spelling Hints

   

   

              Margin="10,10,10,10">

     

     

   

 

 

 

            SpellCheck.IsEnabled ="True"

            AcceptsReturn ="True"

            Name ="txtData" FontSize ="14"

            BorderBrush ="Blue"

            VerticalScrollBarVisibility="Auto"

            HorizontalScrollBarVisibility="Auto">

 

<p id="AutBody_Root1133"><strong>Реализация обработчиков событий MouseEnter/MouseLeave</strong></p>

К настоящему моменту пользовательский интерфейс окна готов. Понадобится лишь предоставить реализации оставшихся обработчиков событий. Начните с обновления файла кода C# так, чтобы каждый из обработчиков событий MouseEnter и MouseLeave устанавливал в текстовой панели строки состояния подходящее сообщение, которое окажет помощь конечному пользователю:

public partial class MainWindow : System.Windows.Window

{

  ...

  protected void MouseEnterExitArea(object sender, RoutedEventArgs args)

  {

    statBarText.Text = "Exit the Application";

  }

  protected void MouseEnterToolsHintsArea(object sender, RoutedEventArgs args)

  {

    statBarText.Text = "Show Spelling Suggestions";

  }

  protected void MouseLeaveArea(object sender, RoutedEventArgs args)

  {

    statBarText.Text = "Ready";

  }

}

Теперь приложение можно запустить. Текст в строке состояния должен изменяться в зависимости от того, над каким пунктом меню или кнопкой панели инструментов находится курсор.

<p id="AutBody_Root1134"><strong>Реализация логики проверки правописания</strong></p>

Инфраструктура WPF имеет встроенную поддержку проверки правописания, независимую от продуктов Microsoft Office. Это значит, что использовать уровень взаимодействия с СОМ для обращения к функции проверки правописания Microsoft Word не понадобится: та же самая функциональность добавляется с помощью всего нескольких строк кода.

Вспомните, что при определении элемента управления TextBox свойство Spellcheck.IsEnabled устанавливается в true. В результате неправильно написанные слова подчеркиваются красной волнистой линией, как происходит в Microsoft Office. Более того, лежащая в основе программная модель предоставляет доступ к механизму проверки правописания, который позволяет получить список предполагаемых вариантов для слов, написанных с ошибкой.

Перейти на страницу:

Похожие книги

97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT