ClearValue не восстанавливает предварительно установленное значение
Я пытаюсь сбросить свойство фона кнопки после ее динамического изменения.
<Button Canvas.Left="-1" Canvas.Top="0" Content="a" FontFamily="Arial" Grid.Column="1" Height="60" Tag="a" Name="Ba" Width="60" FontWeight="Bold" FontSize="35" Foreground="Black">
<Button.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="White" Offset="0" />
<GradientStop Color="Black" Offset="1" />
<GradientStop Color="#FF757575" Offset="0.893" />
<GradientStop Color="#FF989898" Offset="0.074" />
</LinearGradientBrush>
</Button.Background>
</Button>
После того, как я использую метод ClearValue, вот так:
Ba.ClearValue(System.Windows.Controls.Button.BackgroundProperty);
Я не совсем вернусь к тому, что определено в файле.xaml. это выглядит похоже, но не то же самое. Похоже, некоторая информация потеряна.
Как я могу каким-то образом хранить всю эту информацию, чтобы ее можно было полностью восстановить?
Заранее спасибо,
Франциско Сантьяго
2 ответа
Определите стиль, установите фон и примените его снова, если он вам понадобится снова.
Я не совсем вернусь к тому, что определено в файле.xaml
Это не должно; ClearValue
очищает локальное значение свойства, делая его "неустановленным". Когда значение необходимо, оно определяется в соответствии с правилами приоритета, описанными здесь. В большинстве случаев это будет значение, объявленное в стиле элемента управления по умолчанию.
Если вы хотите восстановить исходное значение, определенное в XAML, вам нужно сохранить его где-то перед тем, как изменить его