Хотя данный словарь ресурсов является частью проекта, все словари ресурсов должны быть объединены (обычно на уровне приложения) в единый словарь ресурсов, чтобы их можно было использовать. Для этого применяется следующий формат в файле Арр.xaml
ResourceDictionary в область ResourceDictionary.MergedDictionaries):
Проблема такого подхода в том, что каждый файл ресурсов потребуется добавлять в каждый проект, нуждающийся в ресурсах. Более удачный подход к разделению ресурсов заключается в определении библиотеки классов .NET Core для совместного использования проектами, чем мы и займемся.
Определение сборки, включающей только ресурсы
Самый легкий способ построения сборки из одних ресурсов предусматривает создание проекта WPF User Control Library (.NET Core) (Библиотека пользовательских элементов управления WPF (.NETCore)). Создайте такой проект (по имени MyBrushesLibrary
ObjectResourcesApp.Теперь удалите файл UserControll.xaml
MyBrushes.xaml в проект MyBrushesLibrary и удалите его из проекта ObjectResourcesApp. Наконец, откройте файл MyBrushes.xaml в проекте MyBrushesLibrary и измените пространство имен х:local на clr-namespace:MyBrushesLibrary. Вот как должно выглядеть содержимое файла MyBrushes.xaml: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyBrushesLibrary">
Скомпилируйте проект WPF User Control Library. Объедините имеющиеся двоичные ресурсы со словарем ресурсов уровня приложения из проекта ObjectResourcesApp
Имейте в виду, что данная строка чувствительна к пробелам. Если возле символов двоеточия или косой черты будут присутствовать лишние пробелы, то возникнут ошибки времени выполнения. Первая часть строки представляет собой дружественное имя внешней библиотеки (без файлового расширения). После двоеточия идет слово Component
На этом знакомство с системой управления ресурсами WPF завершено. Описанные здесь приемы придется часто применять в большинстве разрабатываемых приложений (а то и во всех). Теперь давайте займемся исследованием встроенного API-интерфейса анимации WPF.
Службы анимации WPF
В дополнение к службам графической визуализации, которые рассматривались в главе 26, инфраструктура WPF предлагает API-интерфейс для поддержки служб анимации. Встретив термин
Наряду с тем, что API-интерфейсы анимации WPF определенно могли бы использоваться для упомянутых выше целей, анимация может применяться всякий раз, когда приложению необходимо придать особый стиль. Например, можно было бы построить анимацию для кнопки на экране, чтобы она слегка увеличивалась, когда курсор мыши находится внутри ее границ (и возвращалась к прежним размерам, когда курсор покидает границы). Или же можно было бы предусмотреть анимацию для окна, обеспечив его закрытие с использованием определенного визуального эффекта, такого как постепенное исчезновение до полной прозрачности. Применением, более ориентированным на бизнес-приложения, может быть постепенное увеличение четкости отображения сообщений об ошибках на экране, улучшая восприятие пользовательского интерфейса. Фактически поддержка анимации WPF может применяться в приложениях любого рода (бизнес-приложениях, мультимедийных программах, видеоиграх и т.д.) всякий раз, когда нужно создать более привлекательное впечатление у пользователей.
Бьёрн Страуструп , Ирина Сергеевна Козлова , Бьерн Страуструп , Валерий Федорович Альмухаметов
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT