Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Троелсен Эндрю, "Язык программирования C#9 и платформа .NET5" бесплатно, без регистрации.

Будет запрошено имя ресурса (
myBrush

В результате определение кисти переместится внутрь дескриптора
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
StaticResource
<Button Margin="25" Height="200" Width="200" Content="Cancel"
FontSize="20" Background="{StaticResource myBrush}"/>
Расширение разметки {StaticResource}
Расширение разметки
{StaticResource}
Brush
Name
Click
Button
<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
<Button Name="Cancel" Margin="25" Height="200" Width="200" Content="Cancel"
FontSize="20" Background="{<b>DynamicResource</b> myBrush}" Click="Cancel_OnClick"/>