Жанры книг
Мы в соц.сетях
ParaKnig📚 » Компьютеры и Интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
<< На главную

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

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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 478 479 480 481 482 483 484 485 486 ... 642
Перейти на страницу:

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

}

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

Понятие синтаксиса "свойство-элемент" в XAML

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

&lt;Button Height=&quot;50&quot; Width=&quot;100&quot; Content=&quot;OK!&quot;

        FontSize=&quot;20&quot; Foreground=&quot;Yellow&quot;&gt;

  &lt;Button.Background&gt;

   &lt;LinearGradientBrush&gt;

      &lt;GradientStop Color=&quot;DarkGreen&quot; Offset=&quot;0&quot;/&gt;

      &lt;GradientStop Color=&quot;LightGreen&quot; Offset=&quot;1&quot;/&gt;

    &lt;/LinearGradientBrush&gt;

  &lt;/Button.Background&gt;

&lt;/Button&gt;

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

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

<i>&lt;ОпределяющийКласс&gt;</i>

<i>  &lt;ОпределяющийКласс.СвойствоОпределяющегоКласса&gt;</i>

<i>      &lt;! -- Значение для свойства определяющего класса —&gt;</i>

<i>  &lt;/ОпределяющийКласс.СвойствоОпределяющегоКласса&gt;</i>

<i>&lt;/ОпределяющийКласс&gt;</i>

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

&lt;Button Height=&quot;50&quot; Content=&quot;OK!&quot;

FontSize=&quot;20&quot; Foreground=&quot;Yellow&quot;&gt;

  ...

  &lt;Button.Width&gt;

    100

  &lt;/Button.Width&gt;

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

&lt;/Button&gt;

Понятие присоединяемых свойств XAML

В дополнение к синтаксису "свойство-элемент" в XAML поддерживается специальный синтаксис, используемый для установки значения присоединяемого свойства. По существу присоединяемое свойство позволяет дочернему элементу устанавливать значение свойства, которое определено в родительском элементе. Общий шаблон, которому нужно следовать, выглядит так:

<i>&lt;РодительскийЭлемент&gt;</i>

<i>  &lt;ДочернийЭлемент РодительскийЭлемент.СвойствоРодительскогоЭлемента</i>

<i>= &quot;Значение&quot;&gt;</i>

<i>&lt;/РодительскийЭлемент&gt;</i>

Самое распространенное применение синтаксиса присоединяемых свойств связано с позиционированием элементов пользовательского интерфейса внутри одного из классов диспетчеров компоновки (Grid, DockPanel и т.д.). Диспетчеры компоновки более подробно рассматриваются в главе 25, а пока введите в редакторе Kaxaml следующую разметку:

&lt;Page

  xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;

  xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;&gt;

  &lt;Canvas Height=&quot;200&quot; Width=&quot;200&quot; Background=&quot;LightBlue&quot;&gt;

    &lt;Ellipse Canvas.Top=&quot;40&quot; Canvas.Left=&quot;40&quot; Height=&quot;20&quot;

        Width=&quot;20&quot; Fill=&quot;DarkBlue&quot;/&gt;

  &lt;/Canvas&gt;

&lt;/Page&gt;

Здесь определен диспетчер компоновки Canvas, который содержит элемент Ellipse. Обратите внимание, что с помощью синтаксиса присоединяемых свойств элемент Ellipse способен информировать свой родительский элемент (Canvas) о том, где располагать позицию его левого верхнего угла.

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

<b>&lt;!-- Попытка установки свойства Background в Canvas</b>

<b>     через присоединяемое свойство. Ошибка! --&gt;</b>

&lt;Canvas Height=&quot;200&quot; Width=&quot;200&quot;&gt;

  &lt;Ellipse Canvas.Background=&quot;LightBlue&quot;

           Canvas.Top=&quot;40&quot; Canvas.Left=&quot;90&quot;

           Height=&quot;20&quot; Width=&quot;20&quot; Fill=&quot;DarkBlue&quot;/&gt;

1 ... 478 479 480 481 482 483 484 485 486 ... 642
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю бесплатно.
Комментарии
Открыть боковую панель
Комментарии
Лариса
Лариса 11.03.2026 - 20:17
Странно,здесь имя девочки Аграфена,а на других сайтах я прослушала три книги этого цикла с именем Дарвина.Зачем менять имя и путать читателей? Опечатка- не Дарвина,  а  Дарина.
Григорий
Григорий 09.04.2025 - 22:24
Лучшая книга всех времен
Женя
Женя 02.04.2025 - 16:08
Любимая книга