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

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

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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 536 537 538 539 540 541 542 543 544 ... 642
Перейти на страницу:

Будет запрошено имя ресурса (myBrush) и предложено указать, куда он должен быть помещен. Оставьте отмеченным переключатель This document (Этот документ), который выбирается по умолчанию (рис. 27.4).

В результате определение кисти переместится внутрь дескриптора Window.

Resources:

&lt;Window.Resources&gt;

  &lt;RadialGradientBrush x:Key=&quot;myBrush&quot;&gt;

    &lt;GradientStop Color=&quot;#FFC44EC4&quot; Offset=&quot;0&quot; /&gt;

    &lt;GradientStop Color=&quot;#FF829CEB&quot; Offset=&quot;1&quot; /&gt;

    &lt;GradientStop Color=&quot;#FF793879&quot; Offset=&quot;0.669&quot; /&gt;

  &lt;/RadialGradientBrush&gt;

&lt;/Window.Resources&gt;

Свойство Background элемента управления Button обновляется для работы с новым ресурсом:

&lt;Button Margin=&quot;25&quot; Height=&quot;200&quot; Width=&quot;200&quot; Content=&quot;OK&quot;

        FontSize=&quot;20&quot; Background=&quot;{DynamicResource myBrush}&quot;/&gt;

Мастер создания ресурсов определил новый ресурс как динамический (Dynamic Resource). Динамические ресурсы рассматриваются позже, а пока поменяйте тип ресурса на статический (StaticResource):

&lt;Button Margin=&quot;25&quot; Height=&quot;200&quot; Width=&quot;200&quot; Content=&quot;OK&quot;

    FontSize=&quot;20&quot; Background=&quot;{StaticResource myBrush}&quot;/&gt;

Чтобы оценить преимущества, модифицируйте свойство Background кнопки Cancel (Отмена), указав в нем тот же самый ресурс StaticResource, после чего можно будет видеть повторное использование в действии:

&lt;Button Margin=&quot;25&quot; Height=&quot;200&quot; Width=&quot;200&quot; Content=&quot;Cancel&quot;

    FontSize=&quot;20&quot; Background=&quot;{StaticResource myBrush}&quot;/&gt;

Расширение разметки {StaticResource}

Расширение разметки {StaticResource} применяет ресурс только один раз (при инициализации) ион остается "подключенным" к первоначальному объекту на протяжении всей времени жизни приложения. Некоторые свойства (вроде градиентных переходов) будут обновляться, но в случае создания нового элемента Brush, например, элемент управления не обновится. Чтобы взглянуть на такое поведение в действии, добавьте свойство Name и обработчик события Click к каждому элементу управления Button:

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

&lt;Button Name=&quot;Ok&quot; Margin=&quot;25&quot; Height=&quot;200&quot; Width=&quot;200&quot; Content=&quot;OK&quot;

    FontSize=&quot;20&quot; Background=&quot;{StaticResource myBrush}&quot; Click=&quot;Ok_OnClick&quot;/&gt;

&lt;Button Name=&quot;Cancel&quot; Margin=&quot;25&quot; Height=&quot;200&quot; Width=&quot;200&quot; Content=&quot;Cancel&quot;

    FontSize=&quot;20&quot; Background=&quot;{StaticResource myBrush}&quot; Click=&quot;Cancel_OnClick&quot;/&gt;

Затем поместите в обработчик события Ok_OnClick() следующий код:

private void Ok_OnClick(object sender, RoutedEventArgs e)

{

  // Получить кисть и внести изменение.

  var b=(RadialGradientBrush)Resources[&quot;myBrush&quot;];

  b.GradientStops[1]=new GradientStop(Colors.Black, 0.0);

}

На заметку! Здесь для поиска ресурса по имени используется индексатор Resources. Тем не менее, имейте в виду, что если ресурс найти не удастся, тогда будет сгенерировано исключение времени выполнения. Можно также применять метод TryFindResource(), который не приводит к генерации исключения, а просто возвращает null, если указанный ресурс не найден.

Запустив программу и щелкнув на кнопке ОК, вы заметите,что градиенты соответствующим образом изменяются. Добавьте в обработчик события Cancel_OnClick() такой код:

private void Cancel_OnClick(object sender, RoutedEventArgs e)

{

  // Поместить в ячейку myBrush совершенно новую кисть.

  Resources[&quot;myBrush&quot;]=new SolidColorBrush(Colors.Red);

}

Снова запустив программу и щелкнув на кнопке Cancel, вы обнаружите, что ничего не происходит!

Расширение разметки {DynamicResource}

Для свойства также можно использовать расширение разметки DynamicResource. Чтобы выяснить разницу, измените разметку для кнопки Cancel, как показано ниже:

&lt;Button Name=&quot;Cancel&quot; Margin=&quot;25&quot; Height=&quot;200&quot; Width=&quot;200&quot; Content=&quot;Cancel&quot;

    FontSize=&quot;20&quot; Background=&quot;{<b>DynamicResource</b> myBrush}&quot; Click=&quot;Cancel_OnClick&quot;/&gt;

1 ... 536 537 538 539 540 541 542 543 544 ... 642
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю бесплатно.
Комментарии
Открыть боковую панель
Комментарии
Лариса
Лариса 11.03.2026 - 20:17
Странно,здесь имя девочки Аграфена,а на других сайтах я прослушала три книги этого цикла с именем Дарвина.Зачем менять имя и путать читателей? Опечатка- не Дарвина,  а  Дарина.
Григорий
Григорий 09.04.2025 - 22:24
Лучшая книга всех времен
Женя
Женя 02.04.2025 - 16:08
Любимая книга