string colorToUse = (this.comboColors.SelectedItem
as StackPanel).Tag.ToString;
...
}
После запуска программы элемент управления ComboBox
будет выглядеть так, как показано на рис. 25.21.
Сохранение, загрузка и очистка данных InkCanvas
Последняя часть вкладки Ink API
позволит сохранять и загружать данные контейнера InkCanvas
, а также очищать его содержимое, добавляя обработчики событий для кнопок в панели инструментов. Модифицируйте разметку XAML для кнопок за счет добавления разметки, отвечающей за события щелчков:
Width="70" Content="Save Data"
Click="SaveData"/>
Width="70" Content="Load Data"
Click="LoadData"/>
Width="70" Content="Clear"
Click="Clear"/>
Импортируйте пространства имен System.IO
и System.Windows.Ink
в файл кода. Реализуйте обработчики событий следующим образом:
private void SaveData(object sender, RoutedEventArgs e)
{
// Сохранить все данные InkCanvas в локальном файле.
using (FileStream fs = new FileStream("StrokeData.bin", FileMode.Create))
this.MyInkCanvas.Strokes.Save(fs);
fs.Close;
MessageBox.Show("Image Saved","Saved");
}
private void LoadData(object sender, RoutedEventArgs e)
{
// Наполнить StrokeCollection из файла.
using(FileStream fs = new FileStream("StrokeData.bin",
FileMode.Open, FileAccess.Read))
StrokeCollection strokes = new StrokeCollection(fs);
this.MyInkCanvas.Strokes = strokes;
}
private void Clear(object sender, RoutedEventArgs e)
{
// Очистить все штрихи.
this.MyInkCanvas.Strokes.Clear;
}
Теперь должна появиться возможность сохранения данных в файле, их загрузки из файла и очистки InkCanvas
от всех данных. Таким образом, работа с первой вкладкой элемента управления TabControl
завершена, равно как и исследование интерфейса Ink API. Конечно, о технологии Ink API можно рассказать еще много чего, но теперь вы должны обладать достаточными знаниями, чтобы продолжить изучение темы самостоятельно. Далее вы узнаете, как применять привязку данных WPF.
Введение в модель привязки данных WPF
Элементы управления часто служат целью для разнообразных операций привязки данных. Выражаясь просто,
• отмечать флажок элемента управления Checkbox
на основе булевского свойства заданного объекта:
• отображать в элементах TextBox
информацию, извлеченную из реляционной базы данных:
• подключать элемент Label
к целому числу, представляющему количество файлов в папке.
При работе со встроенным механизмом привязки данных WPF важно помнить о разнице между CheckBox
или TextBox
).
В дополнение к привязке традиционных данных инфраструктура WPF делает возможной привязку элементов, как было продемонстрировано в предшествующих примерах. Это значит, что можно привязать (скажем) видимость свойства к свойству состояния отметки флажка. Такое действие было определенно возможным в Windows Forms, но требовало реализации через код. Инфраструктура WPF предлагает развитую экосистему привязки данных, которая способна почти целиком поддерживаться в разметке. Она также позволяет обеспечивать синхронизацию источника и цели в случае изменения значений данных.
Построение вкладки Data Binding
Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT