Чтение онлайн

на главную

Жанры

Язык программирования C#9 и платформа .NET5
Шрифт:

На заметку! Элемент

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

Построение строки состояния

Элемент управления строкой состояния (

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

<!-- Разместить строку состояния внизу -->

<StatusBar DockPanel.Dock ="Bottom" Background="Beige" >

<StatusBarItem>

<TextBlock Name="statBarText" Text="Ready"/>

</StatusBarItem>

</StatusBar>

Завершение проектирования пользовательского интерфейса

Финальный аспект проектирования нашего пользовательского интерфейса связан с определением поддерживающего разделители элемента

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

<Grid DockPanel.Dock ="Left" Background ="AliceBlue">

<!-- Определить строки и колонки -->

<Grid.ColumnDefinitions>

<ColumnDefinition />

<ColumnDefinition />

</Grid.ColumnDefinitions>

<GridSplitter Grid.Column ="0" Width ="5" Background ="Gray" />

<StackPanel Grid.Column="0" VerticalAlignment ="Stretch" >

<Label Name="lblSpellingInstructions" FontSize="14" Margin="10,10,0,0">

Spelling Hints

</Label>

<Expander Name="expanderSpelling" Header ="Try these!"

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

<!-- Будет заполняться программно -->

<Label Name ="lblSpellingHints" FontSize ="12"/>

</Expander>

</StackPanel>

<!--
Это будет областью для ввода -->

<TextBox Grid.Column ="1"

SpellCheck.IsEnabled ="True"

AcceptsReturn ="True"

Name ="txtData" FontSize ="14"

BorderBrush ="Blue"

VerticalScrollBarVisibility="Auto"

HorizontalScrollBarVisibility="Auto">

</TextBox>

</Grid>

Реализация обработчиков событий MouseEnter/MouseLeave

К настоящему моменту пользовательский интерфейс окна готов. Понадобится лишь предоставить реализации оставшихся обработчиков событий. Начните с обновления файла кода 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";

}

}

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

Реализация логики проверки правописания

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

Вспомните, что при определении элемента управления

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

Поделиться:
Популярные книги

Проводник

Кораблев Родион
2. Другая сторона
Фантастика:
боевая фантастика
рпг
7.41
рейтинг книги
Проводник

(Бес) Предел

Юнина Наталья
Любовные романы:
современные любовные романы
6.75
рейтинг книги
(Бес) Предел

Курсант: Назад в СССР 7

Дамиров Рафаэль
7. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 7

Кодекс Охотника. Книга IV

Винокуров Юрий
4. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга IV

Купец. Поморский авантюрист

Ланцов Михаил Алексеевич
7. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Купец. Поморский авантюрист

Его огонь горит для меня. Том 2

Муратова Ульяна
2. Мир Карастели
Фантастика:
юмористическая фантастика
5.40
рейтинг книги
Его огонь горит для меня. Том 2

Проклятый Лекарь IV

Скабер Артемий
4. Каратель
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Проклятый Лекарь IV

Последняя Арена 7

Греков Сергей
7. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 7

Академия

Сай Ярослав
2. Медорфенов
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Академия

Восход. Солнцев. Книга XI

Скабер Артемий
11. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга XI

Третий. Том 3

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 3

Последняя Арена 6

Греков Сергей
6. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 6

Беглец

Бубела Олег Николаевич
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Беглец

СД. Восемнадцатый том. Часть 1

Клеванский Кирилл Сергеевич
31. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
6.93
рейтинг книги
СД. Восемнадцатый том. Часть 1