캔버스에 Silverlight 5에서 실행 취소 다시 실행 작업을 구현하려고합니다. 각 작업을 수행 한 후 캔버스를 스택에 저장하고 실행 취소 또는 다시 실행을 원할 경우 기존 캔버스를 스택에있는 캔버스로 대체합니다.기존 캔버스 변수로 캔버스 변수 초기화하기
현재 임시 변수와 현재 캔버스를 동일하게 만들 때 새로운 복사본이 만들어지지 않지만 두 캔버스 변수 모두 동일한 캔버스를 참조합니다. 즉, 한 캔버스에서 수행 된 변경이 다른 캔버스에 반영됩니다. 이것은 현재 캔버스를 변경 한 다음 임시 캔바스 (작업이 수행되기 전에 현재 캔버스와 동일 함)로 대체하기 위해 실행 취소 할 때 문제를 만듭니다. 임시 캔버스는 이전 캔버스 (즉, 현재 캔버스)에서 수행 된 변경 사항을 가져옵니다. .
어떻게 캔버스를 별도로 복사 할 수 있습니까 ?? 도와주세요.
나는 다음과 같이 초기화하고 있습니다 :
전체 .NET Framework의Canvas temp = new Canvas();
temp = currentCanvas;
Canvas를 저장하면 안됩니다. 대신 Canvas의 * state *를 저장해야합니다.이 상태는 해당 상태의 추상 표현을 작성해야합니다. 따라서 애플리케이션을 모델과 뷰로 분리 할 수 있습니다. – Clemens