2013-06-26 55 views
0

有沒有辦法查詢UIElement來確定哪些故事板影響它?WPF故事板可以應用於UIElement從UIElement(在代碼中)中發現嗎?

例如,Storyboard資源可以在許多地方定義(例如Application.Resources,Window.Resources,Control.Resources)。如果你有一個控制受Storyboard(比如RotateTransform)的影響,是否有任何方法來詢問控制以發現Storyboard

我不想要的只是通過知道它的名字來獲得Storyboard的參考。

+0

我不認爲UIElements知道Storyboards,但故事板會通過'Target'屬性知道元素。所以,也許你可以後退,併爲你想要的UIElement提供故事板 –

+0

詢問故事板,儘管@ sa_ddam213?他們可以在任何地方定義!有一箇中央故事板位置嗎? – Zodman

回答

0

有知道你問什麼沒有直接的方法,但你可以用下面的代碼:

假設「BTN」是您正在搜索Storyboard控制。

Button btn = new Button(); 
     List<Storyboard> lst = new List<Storyboard>(); 
     foreach (var item in this.Resources) 
     { 
      if (item is Storyboard) 
      { 
       Storyboard temp = item as Storyboard; 

       foreach (var animation in temp.Children) 
       { 
        if (animation.GetValue(Storyboard.TargetProperty) == btn) 
        { 
         lst.Add(temp); 
        } 
       } 
      } 
     } 
+0

這裏假設故事板是在「this」中定義的,情況可能並非如此。 – Zodman

+0

你可以對應用程序資源應用相同的代碼 –

+0

Sure @Shivamcv。我的觀點是,雖然有任何數量的NameScope可以在您執行查找和應用程序資源的位置之間貢獻故事板。你不一定知道每個地方要檢查,所以這不是一個完整的解決方案。 – Zodman

相關問題