2013-08-09 1 views
0

이미지에 FadeInAnimation를 첨부 :메트로 내가 일을해야 다음있어

XAML

<Window.Resources> 
    <Storyboard x:Name="FadeInStoryboard1"> 
     <FadeInThemeAnimation Storyboard.TargetName="Image1" /> 
    </Storyboard> 
    <Storyboard x:Name="FadeInStoryboard2"> 
     <FadeInThemeAnimation Storyboard.TargetName="Image2" /> 
    </Storyboard> 
    <Storyboard x:Name="FadeInStoryboard3"> 
     <FadeInThemeAnimation Storyboard.TargetName="Image3" /> 
    </Storyboard> 
    <Storyboard x:Name="FadeInStoryboard4"> 
     <FadeInThemeAnimation Storyboard.TargetName="Image4" /> 
    </Storyboard> 
    <Storyboard x:Name="FadeInStoryboard5"> 
     <FadeInThemeAnimation Storyboard.TargetName="Image5" /> 
    </Storyboard> 
</Window.Resources> 
<Image Source="../Assets/image.png" x:Name="Image1" /> 
<Image Source="../Assets/image.png" x:Name="Image2" /> 
<Image Source="../Assets/image.png" x:Name="Image3" /> 
<Image Source="../Assets/image.png" x:Name="Image4" /> 
<Image Source="../Assets/image.png" x:Name="Image5" /> 

를 C#

//fades in the plane image 
private void FadeIn(int Index) 
{ 
    if (Index == 0) 
     FadeInStoryboard1.Begin(); 
    else if (Index == 1) 
     FadeInStoryboard2.Begin(); 
    else if (Index == 2) 
     FadeInStoryboard3.Begin(); 
    else if (Index == 3) 
     FadeInStoryboard4.Begin(); 
    else 
     FadeInStoryboard5.Begin(); 
} 

위의 코드는 작동합니다 -하지만이있을거야 더 좋은 방법. (A) 색인으로 액세스 할 수있는 목록에 Storyboard 객체를 넣거나 (B) Storyboard 객체를 대상인 Image 객체에 연결하는 방법이 있습니까?

답변

1

리소스를 반복하고 해당 이름을 옵션으로 확인하고 있습니까? 당신은 키의 패턴을 가지고 있다면

string name = "FadeInStoryboard" + index; 
foreach (object resource in this.Resources) 
{ 
    if (resource is System.Windows.Media.Animation.Storyboard) 
    { 
     System.Windows.Media.Animation.Storyboard storyboard = (System.Windows.Media.Animation.Storyboard)resource; 
     if (storyboard.Name == name) storyboard.Begin(); 

    } 
    } 

, 그때는 아마 사용할 수

this.Resources.FindByName("MyKey"+index) 
관련 문제