@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
Какое то противоречие*?
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
WNeZRoS
@WNeZRoS
У вас GeometryDrawing (скорее всего DrawingGroup и DrawingBrush тоже) находятся в "замороженном" состоянии. В этом состоянии в них нельзя ничего менять, и они работают более эффективно. Проверить это можно посмотрев на значение проперти IsFrozen. Лучше всего будет убрать их замораживание, но если это проблематично, то можно сделать редактируемую копию DrawingBrush методом Clone.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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