ClearValue не восстанавливает предварительно установленное значение - PullRequest
3 голосов
/ 03 ноября 2011

Я пытаюсь сбросить свойство фона кнопки после ее динамического изменения.


<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 ]

2 голосов
/ 03 ноября 2011

Определите стиль, установите фон и примените его снова, если он вам понадобится снова.

0 голосов
/ 03 ноября 2011

Я не совсем возвращаюсь к тому, что определено в файле .xaml

Это не должно;ClearValue очищает локальное значение свойства, делая его "неустановленным".Когда значение необходимо, оно определяется в соответствии с правилами приоритета, описанными здесь .В большинстве случаев это будет значение, объявленное в стиле элемента управления по умолчанию.

Если вы хотите восстановить исходное значение, определенное в XAML, вам нужно сохранить его где-то перед тем, как изменить его

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...