[英]Stopping a programmatically instantiated storyboard
我有一個EventTrigger,它將停止XAML中定義的一些情節提要...但是現在我需要停止以編程方式啟動的情節提要。
<UserControl.Resources>
<Storyboard x:Key="FadeIn"> ... Fade In Definition </StoryBoard>
<Storyboard x:Key="FadeOut"> ... Fade In Definition </StoryBoard>
</UserControl>
<UserControl.Triggers>
<EventTrigger RoutedEvent="Mouse.MouseLeave">
<BeginStoryboard="{StaticResource FadeIn}" x:Name="FadeIn_BeginStoryboard" />
</EventTrigger>
<EventTrigger RoutedEvent="Mouse.MouseEnter">
<StopStoryboard BeginStoryboardName="FadeIn_BeginStoryboard"/>
<StopStoryboard BeginStoryboardName="FadeOut_BeginStoryboard"/>
</EventTrigger>
</UserControl.Triggers>
Storyboard FadeOutStoryboard;
public void StopFadeOut() {
FadeIn_BeginStoryboard.Storyboard.Stop();
FadeOut_BeginStoryboard.Storyboard.Stop();
FadeOutStoryboard = (Storyboard) FindResource("FadeOut");
FadeOutStoryboard.Name="FadeOutStoryboard";
FadeOutStoryboard.Begin();
}
當我放置<StopStoryboard BeginStoryboardName =“ FadeOutStoryboard” />時,它告訴我找不到FadeOutStoryboard。 我對WPF編程還很陌生,因此可能會有更好的方法來做到這一點,對此我持開放態度。 由創建我的usercontrol實例的父級調用StopFadeOut()方法。
將這些行移至構造函數。 您只需要運行一次。
FadeOutStoryboard = (Storyboard)FindResource("FadeOut");
FadeOutStoryboard.Name = "FadeOutStoryboard";
然后在它們之后添加此行。
RegisterName("FadeOutStoryboard", FadeOutStoryboard);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.