Как лучше всего копировать / клонировать кисти?

Перед рисованием фигуры на холсте у меня есть предварительный просмотр, который показывает, как будет выглядеть фигура. Я могу настроить непрозрачность, а затем нарисовать форму. Затем я могу захотеть нарисовать вторую фигуру с другой непрозрачностью. Моя проблема в том, что изменение непрозрачности предварительного просмотра также изменяет непрозрачность фигуры, которую я уже нарисовал.

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

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

Я здесь на правильном пути или я должен заниматься чем-то другим? Должен ли я копировать или клонировать? Будет ли метод расширения лучшим способом? Мысли, пожалуйста.

1 ответ

Решение

Что вам нужно, так это клонирование, это было бы просто в wpf с XamlWriter/Reader, к сожалению, вы не можете сделать это в Silverlight. Метод расширения на Brush, который делает глубокую копию, будет работать нормально в вашем случае. Вам придется обрабатывать разные типы кистей отдельно, но это не должно быть проблемой, так как их не так много.

Другие вопросы по тегам