2017-07-16 1 views
-1

Wie machen die Animation Start des TextBlock bei der Eingabe (schwebend) die TasteWie Animation beginnen bei Schweben machen - Storyboard

In TextBlock Ich möchte, dass die <EventTrigger RoutedEvent wird in Input2 bei MouseEnter, Wie kann ich tun bedeutet das

<EventTrigger RoutedEvent=Input2.MouseEnter nicht

erkannt

Der Button:

<Button Grid.Row="0" Name="Input2" Click="Input_Click" MouseEnter="Input_MouseEnter" Background="{x:Null}" BorderBrush="{x:Null}" Foreground="{x:Null}"> 
       <Button.Template> 
        <ControlTemplate> 
         <Border HorizontalAlignment="Center" VerticalAlignment="Center" > 
          <Image Source= "C:\Users\Luvaton\Documents\Visual Studio 2017\Projects\10KHours\10KHours\Media\input.png" 
           Width="40" 
           Height="40"/> 
         </Border> 
        </ControlTemplate> 
       </Button.Template> 
      </Button> 

Die TextBlock:

<TextBlock Grid.Row="0" Name="Input_Name1" Text="Input" FontSize="40" FontFamily="/10KHours;component/Font_count/#Dancing Script" VerticalAlignment="Center" Height="48" Margin="65.346,33.6,-102.081,36"> 
       <TextBlock.Triggers> 
        <EventTrigger RoutedEvent="TextBlock.Loaded"> 
         <BeginStoryboard> 
          <Storyboard> 
           <DoubleAnimation 
              Storyboard.TargetName="Input_Name1" 
              Storyboard.TargetProperty="Opacity" 
              From="1.0" To="0.0" Duration="0:0:5" 
              AutoReverse="true" RepeatBehavior="1x"> 
           </DoubleAnimation> 
          </Storyboard> 
         </BeginStoryboard> 
        </EventTrigger> 
       </TextBlock.Triggers> 
      </TextBlock> 
+0

Was ist Ihr _spezielles_ Problem? Hast du irgendwas probiert? Was hat nicht funktioniert? Sie scheinen bereits zu verstehen, wie Sie eine Animation als Reaktion auf ein Ereignis starten. Hast du das mit dem Knopf versucht? Stellen Sie eine gute [mcve] zur Verfügung, die zeigt, was Sie versucht haben, und erklären Sie genau, was dieser Code tut, was Sie stattdessen tun wollen und mit welcher speziellen Schwierigkeit Sie Probleme haben. –

Antwort

2

Die Grundidee der Stil des TextBlock zu ändern völlig korrekt ist. Fügen Sie eine DataTrigger hinzu und binden Sie sie an die IsMouseOver der Button, die Sie schweben werden. Die Verwendung der IsMouseOver ist wahrscheinlich der einfachste Weg, um die gewünschten Informationen zu erhalten. Hier ist ein minimales Beispiel:

<Button x:Name="btn" Content="Hover me"/> 
<TextBlock x:Name="tb" Text="Input"> 
    <TextBlock.Style> 
     <Style TargetType="{x:Type TextBlock}"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding ElementName=btn, Path=IsMouseOver}" Value="True"> 
        <DataTrigger.EnterActions> 
         <BeginStoryboard> 
          <Storyboard> 
           <DoubleAnimation 
            Storyboard.TargetProperty="Opacity" 
            From="1.0" To="0.0" Duration="0:0:1" 
            AutoReverse="true" RepeatBehavior="1x"> 
           </DoubleAnimation> 
          </Storyboard> 
         </BeginStoryboard> 
        </DataTrigger.EnterActions> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </TextBlock.Style> 
</TextBlock> 
+0

Warum DataTrigger? * * sollte das gleiche tun –

+0

Ja, aber er muss den 'IsMouseOver' eines anderen Elements bekommen. – Fruchtzwerg

+0

Oh, jetzt sehe ich; o) –

Verwandte Themen