애니메이션 용 Brush 개체가 있는데 Clone이 브러시로 보내고 싶습니다.애니메이션 브러시를 복제하는 방법은 무엇입니까?
이 개체 값의 전체 복사본을 만들어이 브러쉬의 수정 가능한 복제본을 만듭니다 :
ColorAnimation ani = new ColorAnimation(Colors.White, TimeSpan.FromSeconds(1)) { RepeatBehavior = RepeatBehavior.Forever, AutoReverse = true }; SolidColorBrush brush1 = new SolidColorBrush(Colors.Black); brush1.BeginAnimation(SolidColorBrush.ColorProperty, ani); SolidColorBrush brush2 = brush1.Clone(); // brush2 is not an animated Brush if (!brush2.HasAnimatedProperties) MessageBox.Show("I don't want this!");
MSDN 라이브러리 (Brush.Clone 방법) 말했듯이
. 종속성 속성을 복사 할 때이 메서드는 리소스 참조와 데이터 바인딩을 복사하지만 더 이상 해결되지 않을 수도 있지만 애니메이션이나 현재 값은 복사하지 않습니다.
내 애니메이션 브러시를 복제하는 가장 좋은 방법은 무엇입니까? 감사합니다. .
내 사용자 지정 복제 메서드가 구현 된 방법의 예를 들어 줄 수 있습니까? – gliderkite
글쎄, ICloneable은 다소 단순한 인터페이스입니다. 단일 메서드 Clone을 노출하므로 구현할 때 소스 개체의 속성/필드를 사용하는 코드를 넣고 해당 개체의 복사본을 만든 다음 복사 된 개체가있는 새 개체를 반환합니다. 구현 세부 사항은 실제로 수행해야 할 작업과 수행 방법에 따라 달라집니다. –
@usr SolidColorBrush를 봉인으로 확장 할 수는 없지만 Brush를 확실히 확장 할 수 있습니다. 더 잘 확인하십시오. –