Работаю над веб-приложением Silverlight и столкнулся с проблемой. Мне нужно программно удалять атрибут Fill у элемента Ellipse в XAML файле, используя JavaScript.
При клике на элемент я устанавливаю ему новый цвет заливки:
<Ellipse x:Name="круг1" Style="{StaticResource СтильКруга}" Canvas.Top="100" Canvas.Left="200" MouseLeftButtonUp="ОбработчикКлика" Fill="Зеленый" />
Но когда кликаю на другой элемент, хочу сбросить цвет первого в исходное состояние. Пробовал разные варианты:
элемент.removeAttribute('Fill');
элемент['Fill'] = null;
Ничего не работает. Как правильно удалить атрибут XAML элемента через JavaScript? Подскажите синтаксис для работы с XAML объектами.
Насчёт удаления атрибута в XAML через JavaScript – решение неочевидное.
Я сталкивался с этим и обычно меняю значение свойства Fill на null для сброса цвета.
Возможно, стоит убедиться, что объект обновляется корректно.
Как думаешь, поможет такой подход?
Дружище, тут фишка в том, что Silverlight немного по-другому работает с атрибутами.
Попробуй такой вариант:
элемент.Fill = new SolidColorBrush();
Это сбросит цвет на дефолтный. Если хочешь конкретный цвет, можно задать его через:
элемент.Fill = new SolidColorBrush(Colors.Transparent);
Главное - не забудь обновить UI после изменений. Это должно решить твою проблему.
слышь, я тож юзал силверлайт и могу подсказать фишку. вместо удаления атрибута попробуй просто присвоить ему пустую строку, типа так:
элемент.Fill = ‘’;
это должно сработать и сбросить цвет. еще можно попробовать через SetValue:
элемент.SetValue(Ellipse.FillProperty, null);
главное не забудь обновить интерфейс после изменений. удачи с кодом, бро!