2017-02-16 96 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

是的,这就是它注册的名称。非常感谢。 –