Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практ 5 работа в WPF.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
142.07 Кб
Скачать

Привязка элементов.

В WPF помимо привязки команд имеются и другие привязки, среди которых есть привязка элементов. Привязка элементов весьма полезная вещь, позволяет настроить реакцию пользовательского элемента на изменение состояния другого элемента. Допустим, мы хотим сделать увеличение шрифта в поле ввода. Мы могли бы с лёгкостью прописать необходимый код в cs части, но WPF даёт возможность реализовать это не залезая в cs файл, а обойдясь только файлом разметки.  Итак, добавим элемент Slider на панель, где у нас находится кнопка «Ок». Xaml код DockPanel’и, с находящейся внутри кнопкой примет вид:

<DockPanel Margin="5" Grid.Row="1" HorizontalAlignment="Right">

<Label Content="Размер шрифта:"></Label>

<Slider Margin="4" MinWidth="100" Name="fontSlider" Maximum="100" Minimum="12"></Slider>

<Button Style="{StaticResource okButtonStyle}" Content="Ok"/>

</DockPanel>

Заметьте, что мы дали имя слайдеру и назначили максимальное значение равное 100 и минимальное значение. Далее необходимо найти в разметке поле ввода и изменить его Xaml:

<TextBox Margin="4" VerticalScrollBarVisibility="Auto" Name="inputTextBox" FontSize="{Binding ElementName=fontSlider, Path=Value, UpdateSourceTrigger=PropertyChanged}"/>

Если разбирать код, то видно, что свойству FontSize назначается привязка, в ElementName мы указывает тот элемент, откуда мы будем брать значения, в Path указываем свойство элемента, где хранится значение, UpdateSourceTrigger назначает режим обновления привязки, в нашем случае, как только слайдер сдвинется с места, привязка сработает у текстового поля. Теперь, введя что- то в текстовое поле и изменив положение слайдера, шрифт должен увеличиваться в зависимости от значения Value элемента (рис.2.)

Рисунок 2. Привязка свойств пользовательского элемента. 

В моём цикле статей я сделал попытку заинтересовать вас весьма перспективной технологией WPF, то что я показал является только крошечной долей возможностей данной технологии. Пытаясь уместить в эти 5 статей самое необходимое, возможно, я обделил вниманием какой то важный аспект, тем не менее, я пытался показать вам то, что меня в дни обучения WPF очень удивило/привлекло, и заставило продолжить изучение. Ведь если технология не даёт ничего нового, то ценность её весьма сомнительна, к WPF данный факт не относится. За то малое время, которое прошло с рождения WPF и по сей день, от версии к версии Net.Framework’a добавляются и новые возможности к WPF, в то время как эра WinForms, если судить по нововведениям в Net.Framework’ах, похоже, приходит к концу. Так что выбор за вами, не стоит рассчитывать что WinForms завтра отомрёт, но тем не менее если это случится, нужно быть готовым к быстрому переходу на альтернативу – WPF.  Как я говорил, я показал лишь малую часть возможностей технологии, а потому, вне зависимости от исходов StepByStep, данный цикл статей будет продолжен.