2017-02-16 101 views
0

因爲我僅在運行時才知道KeyTime,並且無法在那裏進行綁定,所以我在代碼中構建故事板。它工作正常。在'System.Windows.Style'的名稱範圍中找不到名稱

Bu我對StopStoryboard有問題。每當退出觸發發生,我得到:

名稱不能在'System.Windows.Style'的名稱範圍中找到。

這是我使用的代碼:

private static void InjectStorybord(Hourglass originator) 
{ 
    Storyboard sb = GetStoryboard(originator); 
    originator.Resources["MainStory"] = sb; 

    Binding runningBinding = GetBinding(originator); 

    DataTrigger trigger = new DataTrigger() { Binding = runningBinding, Value = true }; 

    BeginStoryboard begineStory = new BeginStoryboard() { Storyboard = sb, Name = BEGIN_MAIN_NAME }; 
    begineStory.SetValue(FrameworkElement.NameProperty, BEGIN_MAIN_NAME);//Trying this to achive x:Name not helping eithre 
    trigger.EnterActions.Add(begineStory); 
    trigger.ExitActions.Add(new StopStoryboard() { BeginStoryboardName = begineStory.Name }); 


    Style beginStoryStyle = new Style(typeof(Grid)); 
    beginStoryStyle.Triggers.Add(trigger); 


    originator.layoutRoot.Style = beginStoryStyle; 
} 

回答

1

嘗試使用樣式的RegisterName方法

Style beginStoryStyle = new Style(typeof(Grid)); 
beginStoryStyle.RegisterName(BEGIN_MAIN_NAME, begineStory); 
beginStoryStyle.Triggers.Add(trigger); 
+0

是的,這就是它註冊的名稱。非常感謝。 –