2011-03-14 7 views
10

에서 대상 이름 설정 내가 가진 자원스토리 보드 - 코드 숨김

<Window.Resources> 
    <Storyboard x:Key="Fading" Storyboard.TargetName="NotifyWindow" Storyboard.TargetProperty="Opacity" > 
     <DoubleAnimation From="1" To="0" Duration="0:0:1"> 
     </DoubleAnimation> 
    </Storyboard> 
    </Window.Resources> 

그리고 난 다음 코드

private void NotifyWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e) 
{ 
    Storyboard fading = this.Resources["Fading"] as Storyboard; 
    if (fading != null && !fadingCompleted) 
    { 
     fading.Completed += FadingStoryBoard_Completed; 
     fading.Begin(); 
     e.Cancel = true; 
    } 
} 

private void FadingStoryBoard_Completed(object sender, EventArgs e) 
{ 
    fadingCompleted = true; 
    Close(); 
    fadingCompleted = false; 
} 

을 그리고 이것은 잘 작동하지만 이동하려는의 windowClosing에에서 스토리 보드 이 스토리 보드를 다른 어셈블리로 가져옵니다. 그래서 양식 코드 StoryBoard.TargetName을 지정해야합니다. 어떻게해야합니까? "Set" + PropertyName

보기 C# 예제 here :

Storyboard.SetTargetName(yourAnimation, "NotifyWindow"); 

답변

16

첨부 특성이라는 정적 인 헬퍼 메소드를 통해 코드에서 설정 될 수있다 : 당신의 예에서

dependencyObjectInstance.SetValue(SampleClass.PropertyName + "Property", value); 

:

,536,
fading.SetValue(Storyboard.TargetNameProperty, "NotifyWindow"); 
7

객체 의존성 종속성 속성을 설정하는 표준 방식 결합 특성에 대해 동일

+0

+1에 대한 노력 :) – Stecya

관련 문제