Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Логические ресурсы

Свойства зависимостейи присоединённые свойства | Маршрутизируемыесобытия | Многопоточность в WPF | Приложения на основе страниц | Работа с панелью задач Windows 7 | Размер и выравнивание | Встроенные контейнеры компоновки | Прокрутка и декорирование содержимого | Элементы управления содержимым | Списковые элементы управления |


Читайте также:
  1. Альтернативные ресурсы и групповая терапия
  2. АНАТОМО-ФИЗИОЛОГИЧЕСКИЕ ОСОБЕННОСТИ ПЕРИОДОНТА
  3. Археологические данные
  4. Археологические свидетельства древней истории
  5. Базовый модуль № 10. Экологические преступления.
  6. Библиографические ссылки на электронные ресурсы
  7. Биологические активы по группам, зрелые и незрелые активы

Логические (объектные) ресурсы – это произвольные объекты, ассоциированные с элементом WPF. Классы FrameworkElement и FrameworkContentElement определяют словарь Resources с типом System.Windows.ResourceDictionary. Этот словарь хранит коллекцию логических ресурсов элемента. С коллекцией Resources можно работать как в коде, так и в разметке XAML.В последнем случае объект, помещаемый в ресурс, должен обладать конструктором без параметров. Кроме этого, для определения ключа словаря в разметке требуется использовать атрибут x:Key из пространства имён анализатора XAML:

<!-- Определение ресурсов для кнопки в XAML-->

<Button x:Name="btn" Content="OK">

<Button.Resources>

<SolidColorBrush x:Key="background">

Yellow

</SolidColorBrush>

<SolidColorBrush x:Key="borderBrush">

Red

</SolidColorBrush>

</Button.Resources>

</Button>

 

// эквивалентное определение ресурсов для кнопки в коде

btn.Resources.Add("background", newSolidColorBrush(Colors.Yellow));

btn.Resources.Add("borderBrush", newSolidColorBrush(Colors.Red));

Чтобы сослаться на ресурс в разметке XAML, необходимо использовать расширения разметки {StaticResource} или {DynamicResource}.При этом указывается ключ ресурса. Анализатор XAML выполняет поиск ресурса по ключу, просматривая коллекцию ресурсов элемента, затем ресурсы родительского элемента, и так далее. Вот почему ресурсы обычно объявляются на уровне родительского окна или объекта Application.

<Window xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">

<Window.Resources>

<SolidColorBrush x:Key="borderBrush">Red</SolidColorBrush>

</Window.Resources>

<Button Content="OK" BorderBrush="{StaticResource borderBrush}"/>

</Window>

При статической ссылке изменения ресурса после применения не влияют на целевой объект. При динамическом использовании любая модификация ресурса (даже после применения!) отразится на целевом объекте. Ниже показан пример статического и динамического применения ресурсов в коде:

// статическое применение ресурса с поиском по дереву элементов

button.Background = (Brush)button.FindResource("background");

// статическое применение ресурса из заданной коллекции ресурсов

button.Background = (Brush)window.Resources["background"];

// динамическоеприменениересурса

button.SetResourceReference(Button.BackgroundProperty, "background");

Определение логических ресурсов часто выносится в отдельныйXAML-файл, который в качестве корневого элемента содержит <ResourceDictionary>:

<ResourceDictionary xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">

<Image x:Key="logo" Source="logo.jpg"/>

</ResourceDictionary>

ДлятогочтобыобъединитьресурсывфайлахсколлекциейResources, следуетиспользоватьсвойствоMergedDictionariesклассаResourceDictionary:

<Window.Resources>

<ResourceDictionary>

<ResourceDictionary.MergedDictionaries>

<ResourceDictionary Source="file1.xaml"/>

<ResourceDictionary Source="file2.xaml"/>

</ResourceDictionary.MergedDictionaries>

</ResourceDictionary>

</Window.Resources>

13. ПРИВЯЗКА данных


Дата добавления: 2015-11-14; просмотров: 36 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Прочие элементы управления| Базовые концепции привязки данных

mybiblioteka.su - 2015-2024 год. (0.006 сек.)