...
// Необычная кисть для фона.
LinearGradientBrush fancyBruch =
new LinearGradientBrush(Colors.DarkGreen, Colors.LightGreen, 45);
myBtn.Background = fancyBruch;
myBtn.Foreground = new SolidColorBrush(Colors.Yellow);
}
Но можно ли представить эту сложную кисть в виде строки? Нет, нельзя! К счастью, в XAML предусмотрен специальный синтаксис, который можно использовать всякий раз, когда нужно присвоить сложный объект в качестве значения свойства; он называется
Понятие синтаксиса "свойство-элемент" в XAML
Синтаксис "свойство-элемент" позволяет присваивать свойству сложные объекты. Ниже показано описание XAML элемента Button, в котором для установки свойства Background
применяется объект LinearGradientBrush
:
FontSize="20" Foreground="Yellow">
Обратите внимание, что внутри дескрипторов и
определена вложенная область по имени
, а в ней — специальный элемент
. (Пока не беспокойтесь о коде кисти; вы освоите графику WPF в главе 26.)
Любое свойство может быть установлено с использованием синтаксиса "свойство-элемент", который всегда сводится к следующему шаблону:
Хотя любое свойство может быть установлено с применением такого синтаксиса, указание значения в виде простой строки, когда подобное возможно, будет экономить время ввода. Например, вот гораздо более многословный способ установки свойства Width
элемента Button
:
FontSize="20" Foreground="Yellow">
...
100
Понятие присоединяемых свойств XAML
В дополнение к синтаксису "свойство-элемент" в XAML поддерживается специальный синтаксис, используемый для установки значения
Самое распространенное применение синтаксиса присоединяемых свойств связано с позиционированием элементов пользовательского интерфейса внутри одного из классов диспетчеров компоновки (Grid
, DockPanel
и т.д.). Диспетчеры компоновки более подробно рассматриваются в главе 25, а пока введите в редакторе Kaxaml следующую разметку:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
Width="20" Fill="DarkBlue"/>
Здесь определен диспетчер компоновки Canvas
, который содержит элемент Ellipse
. Обратите внимание, что с помощью синтаксиса присоединяемых свойств элемент Ellipse
способен информировать свой родительский элемент (Canvas
) о том, где располагать позицию его левого верхнего угла.
В отношении присоединяемых свойств следует иметь в виду несколько моментов. Прежде всего, это не универсальный синтаксис, который может применяться к любому свойству
Canvas.Top="40" Canvas.Left="90"
Height="20" Width="20" Fill="DarkBlue"/>
Присоединяемые свойства являются специализированной формой специфичной для WPF концепции, которая называется
На заметку! В Visual Studio имеется средство IntelliSense
, которое отображает допустимые присоединяемые свойства, доступные для установки заданным элементом.
Понятие расширений разметки XAML
Как уже объяснялось, значения свойств чаще всего представляются в виде простой строки или через синтаксис "свойство-элемент". Однако существует еще один способ указать значение атрибута XAML — применение