Читаем Язык программирования C#9 и платформа .NET5 полностью

  ...

  // Необычная кисть для фона.

  LinearGradientBrush fancyBruch =

    new LinearGradientBrush(Colors.DarkGreen, Colors.LightGreen, 45);

  myBtn.Background = fancyBruch;

  myBtn.Foreground = new SolidColorBrush(Colors.Yellow);

}

Но можно ли представить эту сложную кисть в виде строки? Нет, нельзя! К счастью, в XAML предусмотрен специальный синтаксис, который можно использовать всякий раз, когда нужно присвоить сложный объект в качестве значения свойства; он называется синтаксисом "свойство-элемент".

<p id="AutBody_Root1089"><strong>Понятие синтаксиса "свойство-элемент" в XAML</strong></p>

Синтаксис "свойство-элемент" позволяет присваивать свойству сложные объекты. Ниже показано описание XAML элемента Button, в котором для установки свойства Background применяется объект LinearGradientBrush:

        FontSize="20" Foreground="Yellow">

 

  

     

     

   

 

Обратите внимание, что внутри дескрипторов и определена вложенная область по имени , а в ней — специальный элемент . (Пока не беспокойтесь о коде кисти; вы освоите графику WPF в главе 26.)

Любое свойство может быть установлено с использованием синтаксиса "свойство-элемент", который всегда сводится к следующему шаблону:

<ОпределяющийКласс>

  <ОпределяющийКласс.СвойствоОпределяющегоКласса>

     

 

Хотя любое свойство может быть установлено с применением такого синтаксиса, указание значения в виде простой строки, когда подобное возможно, будет экономить время ввода. Например, вот гораздо более многословный способ установки свойства Width элемента Button:

FontSize="20" Foreground="Yellow">

  ...

 

    100

 

<p id="AutBody_Root1090"><strong>Понятие присоединяемых свойств XAML</strong></p>

В дополнение к синтаксису "свойство-элемент" в 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) о том, где располагать позицию его левого верхнего угла.

В отношении присоединяемых свойств следует иметь в виду несколько моментов. Прежде всего, это не универсальный синтаксис, который может применяться к любому свойству любого родительского элемента. Скажем, приведенная далее разметка XAML содержит ошибку:

 

           Canvas.Top="40" Canvas.Left="90"

           Height="20" Width="20" Fill="DarkBlue"/>

Присоединяемые свойства являются специализированной формой специфичной для WPF концепции, которая называется свойством зависимости. Если только свойство не было реализовано в весьма специальной манере, то его значение не может быть установлено с использованием синтаксиса присоединяемых свойств. Свойства зависимости подробно исследуются в главе 25.

На заметку! В Visual Studio имеется средство IntelliSense, которое отображает допустимые присоединяемые свойства, доступные для установки заданным элементом.

<p id="AutBody_Root1091"><strong>Понятие расширений разметки XAML</strong></p>

Как уже объяснялось, значения свойств чаще всего представляются в виде простой строки или через синтаксис "свойство-элемент". Однако существует еще один способ указать значение атрибута XAML — применение расширений разметки. Расширения разметки позволяют анализатору XAML получать значение для свойства из выделенного внешнего класса. Это может обеспечить большие преимущества, поскольку для получения значений некоторых свойств требуется выполнение множества операторов кода.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных