让我们说,我已经结合了2个几何
var combined = Geometry.Combine(geometry1, geometry2, GeometryCombineMode.Intersect, null);
if (combined.Figures.Count > 0)
combined.Figures[0].IsClosed = false; // throws exception
未处理的类型' System.InvalidOperationException'发生在WindowsBase.dll
中附加信息:无法在对象上设置属性' M0; 50,..... z'因为它处于只读状态。
在调试器中
geometry1.IsFrozen = false;
geometry2.IsFrozen = false;
combined.IsFrozen = false;
combined.Figures.IsFrozen = false;
combined.Figures[0].IsFrozen = true; // wtf?
解冻的正确方法是什么?
我正在尝试解决this问题。
答案 0 :(得分:1)
正如@pushpraj评论的那样,有一种Clone()
方法可以解决这个问题:
var combined = Geometry.Combine(geometry1, geometry2, GeometryCombineMode.Intersect, null);
if (combined.Figures.Count > 0)
{
var figure = combined.Figures[0].Clone();
figure.IsClosed = false;
combined.Figures.RemoveAt(0);
combined.Figures.Insert(0, figure);
}