Язык программирования C#9 и платформа .NET5
Часть 507 из 642 Информация о книге
<ToolBar Name="InkToolBar" Height="60"></ToolBar>Добавьте в
три элемента управленияToolbarвнутри панелиRadioButtonи элемента управленияWrapPanel:Border<Border Margin="0,2,0,2.4" Width="280" VerticalAlignment="Center"><WrapPanel><RadioButton x:Name="inkRadio" Margin="5,10"Content="Ink Mode!" IsChecked="True" /><RadioButton x:Name="eraseRadio" Margin="5,10" Content="Erase Mode!" /><RadioButton x:Name="selectRadio" Margin="5,10" Content="Select Mode!" /></WrapPanel></Border>Когда элемент управления
помещается не внутрь родительской панели, он получает пользовательский интерфейс, идентичный пользовательскому интерфейсу элемента управленияRadioButton! Именно потому элементы управленияButtonбыли упакованы в панельRadioButton.WrapPanelДалее добавьте элемент
и элементSeparator, свойствоComboBoxкоторого установлено вWidth, а свойство175— вMargin. Добавьте три дескриптора10,0,0,0с содержимымComboBoxItem,RedиGreenи сопроводите весь элемент управленияBlueеще одним элементомComboBox:Separator<Separator/><ComboBox x:Name="comboColors" Width="175" Margin="10,0,0,0"><ComboBoxItem Content="Red"/><ComboBoxItem Content="Green"/><ComboBoxItem Content="Blue"/></ComboBox><Separator/>Элемент управления RadioButton
В данном примере необходимо, чтобы три добавленных элемента управления
были взаимно исключающими. В других инфраструктурах для построения графических пользовательских интерфейсов такие связанные элементы требуют помещения в одну групповую рамку. Поступать подобным образом в WPF нет нужды. Взамен элементам управления просто назначается то же самое групповое имя, что очень удобно, поскольку связанные элементы не обязаны физически находиться внутри одной области, а могут располагаться где угодно в окне.RadioButtonКласс
имеет свойствоRadioButton, значения которого переключаются междуIsCheckedиtrue, когда конечный пользователь щелкает на элементе пользовательского интерфейса. К тому же элемент управленияfalseпредоставляет два события (RadioButtonиChecked), которые можно применять для перехвата такого изменения состояния.UncheckedДобавление кнопок сохранения, загрузки и удаления
Финальным элементом управления внутри
будетToolBar, содержащий три элемента управленияGrid. Поместите после последнего элемента управленияButtonследующую разметку:Separator<Grid><Grid.ColumnDefinitions><ColumnDefinition Width="Auto"/><ColumnDefinition Width="Auto"/><ColumnDefinition Width="Auto"/></Grid.ColumnDefinitions><Button Grid.Column="0" x:Name="btnSave" Margin="10,10"Width="70" Content="Save Data"/><Button Grid.Column="1" x:Name="btnLoad" Margin="10,10"Width="70" Content="Load Data"/><Button Grid.Column="2" x:Name="btnClear" Margin="10,10"Width="70" Content="Clear"/></Grid>Добавление элемента управления InkCanvas
Финальным элементом управления для
являетсяTabControl. Поместите показанную ниже разметку после закрывающего дескриптораInkCanvas, но перед закрывающим дескрипторомToolBar:StackPanel<InkCanvas x:Name="MyInkCanvas" Background="#FFB6F4F1" />Предварительный просмотр окна
Теперь все готово к тестированию программы, для чего понадобится нажать клавишу <F5>. Должны отобразиться три взаимно исключающих переключателя, раскрывающийся список с тремя элементами и три кнопки (рис. 25.17).
