2012-12-28 5 views
3

GradientStop에 대해 임의 색상의 LinearGradientBrush을 반환하고 나중에 storyboard 애니메이션에 사용하기 위해 mylabel.RegisterName을 사용하는 방법이 있습니다. 내가 등록 된 이름을 덮어 쓸 수있는 방법을 발견하지 않았습니다등록 된 이름을 덮어 쓰기

try 
{ 
    myLabel.UnregisterName("GS1"); 
    myLabel.UnregisterName("GS2"); 
    myLabel.UnregisterName("GS3"); 
    myLabel.UnregisterName("GS4"); 
} 
catch 
{ 
} 

: 내가 이렇게 등록 된 이름이 존재하지 않는 첫 번째 호출에서 오류를 방지합니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?

답변

4

UnregisterName? 더 조금 주위에 파고

(나는 단지 문제의 일부를 읽을 수있는 경우에 대답하려고 무엇을 얻을 ...)

, 다른 (WAY 간단) 대안을 발견 할 수 있습니다 :

var isGs1Defined = NameScope.GetNameScope(myLabel).FindName("GS1") == null; 

또는 멋지게 포장 :

public static bool IsNameRegistered(DependencyObject depObject, string name) 
{ 
    var namescope = NameScope.GetNameScope(depObject); 
    if(namescope == null) 
     return false; 
    return namescope.FindName(name) != null; 
} 
+3

당신이 내 질문을 읽고? –

+0

하 - 분명히 아닙니다; 죄송합니다. 휴대 전화에서 이것들을 읽었을 때, 모바일보기에서 비트가 잘립니다. 내 컴퓨터로 돌아 가면 다시 방문 할 것입니다. – JerKimball

+0

@ 크리스티안 미안해. 그 대답은 대답 – JerKimball