在画布上绘制形状之前,我有一个预览,显示形状的外观。我可以调整不透明度然后绘制形状。然后,我可能希望绘制具有不同不透明度的第二形状。我的问题是改变预览的不透明度也会改变我已经绘制的形状的不透明度。
这使我相信每次绘制形状之前我都需要创建用于预览的画笔副本。
有各种不同的画笔,例如,渐变画笔需要复制不仅仅是渐变停止集合,而是为要复制的集合中的每个渐变停止创建一个新的渐变停止。
我在这里走的正确轨道还是我应该做别的事?我应该复制还是克隆?扩展方法是最好的方法吗?请思考。
答案 0 :(得分:2)
你需要的是克隆,使用XamlWriter / Reader在wpf中很容易,不幸的是你无法在Silverlight中实现它。在Brush上进行深度复制的扩展方法在您的情况下可以正常工作。你将不得不分别处理不同的画笔类型,但它不应该是一个问题,因为没有那么多。