2014-08-29 2 views
0

Скажем, я совмещал 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

Это новая проблема или это обновление к первоначальному вопросу? если последнее, то вам лучше будет обновить этот вопрос. – Sayse

+0

@ Сейсе, да и да. Это отдельная проблема, которая может (я еще не знаю) решить мою оригинальную проблему. Могут быть возможные * другие * решения оригинального вопроса, поэтому я решил задать новый вопрос, который затрагивает более конкретную проблему. – Sinatr

+0

размораживание не является вариантом, возможно, вы можете назначить новую обновленную копию. – pushpraj

ответ

0

Как @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); 
} 
Смежные вопросы