Категории
Самые читаемые
RUSBOOK.SU » Компьютеры и Интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

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

25.08.2025 - 11:02 5 0
0
Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Описание Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
В 10-м издании книги описаны новейшие возможности языка C# 9 и .NET 5 вместе с подробным закулисным обсуждением, призванным расширить навыки критического мышления разработчиков, когда речь идет об их ремесле. Книга охватывает ASP.NET Core, Entity Framework Core и многое другое наряду с последними обновлениями унифицированной платформы .NET, начиная с улучшений показателей производительности настольных приложений Windows в .NET 5 и обновления инструментария XAML и заканчивая расширенным рассмотрением файлов данных и способов обработки данных. Все примеры кода были переписаны с учетом возможностей последнего выпуска C# 9.
Читать онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Шрифт:

-
+

Интервал:

-
+

Закладка:

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

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

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

Resources:

<Window.Resources>

  <RadialGradientBrush x:Key="myBrush">

    <GradientStop Color="#FFC44EC4" Offset="0" />

    <GradientStop Color="#FF829CEB" Offset="1" />

    <GradientStop Color="#FF793879" Offset="0.669" />

  </RadialGradientBrush>

</Window.Resources>

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

<Button Margin="25" Height="200" Width="200" Content="OK"

        FontSize="20" Background="{DynamicResource myBrush}"/>

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

<Button Margin="25" Height="200" Width="200" Content="OK"

    FontSize="20" Background="{StaticResource myBrush}"/>

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

<Button Margin="25" Height="200" Width="200" Content="Cancel"

    FontSize="20" Background="{StaticResource myBrush}"/>

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

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

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

<Button Name="Ok" Margin="25" Height="200" Width="200" Content="OK"

    FontSize="20" Background="{StaticResource myBrush}" Click="Ok_OnClick"/>

<Button Name="Cancel" Margin="25" Height="200" Width="200" Content="Cancel"

    FontSize="20" Background="{StaticResource myBrush}" Click="Cancel_OnClick"/>

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

private void Ok_OnClick(object sender, RoutedEventArgs e)

{

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

  var b=(RadialGradientBrush)Resources["myBrush"];

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

}

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

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

private void Cancel_OnClick(object sender, RoutedEventArgs e)

{

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

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

}

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

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

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

<Button Name="Cancel" Margin="25" Height="200" Width="200" Content="Cancel"

    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 - Троелсен Эндрю торрент бесплатно.
Комментарии
Открыть боковую панель
Комментарии
Сергій
Сергій 25.01.2024 - 17:17
"Убийство миссис Спэнлоу" от Агаты Кристи – это великолепный детектив, который завораживает с первой страницы и держит в напряжении до последнего момента. Кристи, как всегда, мастерски строит