Создание панели инструментов, строки состояния и рабочей области

Панель инструментов содержит кнопки быстрого доступа к командам меню, наиболее часто употребляемые пользователем. Обычно она размещается в верхней части рабочей области окна после меню. Панель инструментов представляет собой как минимум один контейнер для элементов управления, чаще всего кнопок, определенный классом ToolBar. Но она может состоять и из нескольких групп инструментов, где каждая группа пакуется в отдельный контейнер ToolBar. Для управления совместным стандартным поведением нескольких панелей инструментов все они упаковываются в контейнер ToolBarTray.

  • Добавьте в контейнер размещения DockPanel после разметки меню разметку создания панели инструментов
<!-- Панель инструментов --> <ToolBarTray DockPanel.Dock="Top"> <ToolBar> <Button Width="23" Content="{StaticResource iconNew}" /> <Button Width="23" Content="{StaticResource iconOpen}" /> <Button Width="23" Content="{StaticResource iconSave}" /> </ToolBar> <ToolBar> <Button Width="23" Content="{StaticResource iconUndo}" /> <Button Width="23" Content="{StaticResource iconRedo}" /> <Separator /> <Button Width="23" Content="{StaticResource iconCut}" /> <Button Width="23" Content="{StaticResource iconCopy}" /> <Button Width="23" Content="{StaticResource iconPaste}" /> <Button Width="23" Content="{StaticResource iconDelete}" /> </ToolBar> <ToolBar Header="Find:"> <TextBox Width="100" /> <Button Width="23" Content="{StaticResource iconFind}" /> </ToolBar> </ToolBarTray>

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

  • Добавьте после разметки панели инструментов разметку создания строки состояния
<!-- Строка состояния --> <StatusBar DockPanel.Dock="Bottom" Height="32" Name="statusBar"> <Label>Simulator Application is Loading</Label> <Separator /> <ProgressBar Height="20" Width="100" IsIndeterminate="True" /> </StatusBar>

Контейнер StatusBar строки состояния мы привязали к нижней части окна и наполнили тремя элементами, последний из которых будет имитировать ход процесса загрузки приложения за счет свойства IsIndeterminate="True".

  • Добавьте после разметки строки состояния многострочное текстовое поле редактирования TextBox, который будет представлять рабочую область окна приложения и занимать все свободное пространство, поскольку в открывающем дескрипторе панели размещения мы указали для последнего элемента соответствующий параметр <DockPanel LastChildFill="True">
<!-- Многострочное текстовое поле редактирования --> <TextBox TextWrapping="Wrap" AcceptsReturn="True" AcceptsTab="True" VerticalScrollBarVisibility="Auto" > </TextBox>

Параметр TextWrapping="Wrap" переносит строку, если она не помещается по ширине в текстовое поле. AcceptsReturn="True" включает действие клавиши для переноса строк (accept - принимать, признавать). AcceptsTab="True" включает действие клавиши табуляции в текстовом поле. VerticalScrollBarVisibility="Auto" включает автоматическое появление линейки скролирования, когда текст выходит за пределы области редактирования по высоте.