Задать вопрос
@AlexSofar

Почему я не могу задать цвет кисти GeometryDrawing.Brush, выдает исключение?

public void LoadIcon(object obj)
{
    DrawingBrush brush = obj as DrawingBrush;
    DrawingGroup dgroup = brush.Drawing as DrawingGroup;    
    foreach (var item in dgroup.Children)
    {
        var geometry = item as GeometryDrawing;
        // Это часть вызывает исключение
        geometry.Brush = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));   
    };                
    IconButton = brush;
}

Мне нужно изменить цвет кисти, но когда я пытаюсь присвоить цвет среда выдает исключение.

5d1c0315c0046526666338.jpeg
Хотя свойство не является свойством только для чтения:

5d1c04151dbb4552797726.jpeg
Какое то противоречие*?
  • Вопрос задан
  • 83 просмотра
Подписаться 2 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик игр на Unity
    13 месяцев
    Далее
  • Академия Эдюсон
    Разработчик игр на Unity + ИИ
    6 месяцев
    Далее
  • Stepik
    PRO C#. Профессия "Backend разработчик"
    4 месяца
    Далее
Решения вопроса 1
WNeZRoS
@WNeZRoS
У вас GeometryDrawing (скорее всего DrawingGroup и DrawingBrush тоже) находятся в "замороженном" состоянии. В этом состоянии в них нельзя ничего менять, и они работают более эффективно. Проверить это можно посмотрев на значение проперти IsFrozen. Лучше всего будет убрать их замораживание, но если это проблематично, то можно сделать редактируемую копию DrawingBrush методом Clone.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы