簡體   English   中英

停止以編程方式實例化的情節提要

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM