2017-08-29 6 views
0

ストーリーボードを使用してWPFアニメーションを作成しています。私が望むのは、テキストボックスにフォーカスが入るとすぐにページのすべてのコンテンツをフェードアウトさせ、フォーカスがテキストボックスから削除されるとすぐにすべてをフェードインさせることです。これを行うために、私はコードがない次のXAMLを持っています。RoutedEvent TextBox.LostFocusがWPFアプリケーションで動作しない

<Page.Triggers> 
    <EventTrigger RoutedEvent="TextBox.GotFocus"> 
    <BeginStoryboard> 
     <Storyboard> 
      <DoubleAnimation 
       Storyboard.TargetName="Grid1" 
       Storyboard.TargetProperty="Opacity" 
       From="1" To="0.1" Duration="0:0:0.2" 
       AutoReverse="False" > 
      </DoubleAnimation> 
     </Storyboard> 
    </BeginStoryboard> 
    </EventTrigger> 
    <EventTrigger RoutedEvent="TextBox.LostFocus"> 
    <BeginStoryboard> 
     <Storyboard> 
      <DoubleAnimation 
       Storyboard.TargetName="Grid1" 
       Storyboard.TargetProperty="Opacity" 
       From="0.1" To="1" Duration="0:0:0.2" 
       AutoReverse="False"> 
      </DoubleAnimation> 
     </Storyboard> 
    </BeginStoryboard> 
    </EventTrigger> 

テキストボックスの外にフォーカスを移動するには、私は次のボタンがあります:私は、アプリを実行すると

<Button 
     Name="SearchButton" 
     Height="30" Width="30" 
     Grid.Column="1" 
     Focusable="True" 
     IsHitTestVisible="True" 
     Style="{StaticResource SearchButton}" 
     Padding="3,3,3,3" 
     Margin="3,3,3,3" Click="Button_Click"/> 

、テキストボックスをクリックすると、フェードアウト作業罰金になります。しかし、ボタンをクリックするとフェードインは始まりません。

誰かに洞察力を与えてくれますか?

答えて

0

あなたがいないPageレベルで、直接TextBoxであなたのトリガーを配置する必要があります

<TextBox> 
    <TextBox.Triggers> 
     <EventTrigger RoutedEvent="TextBox.GotFocus"> 
     <BeginStoryboard> 
      <Storyboard> 
      <DoubleAnimation 
       Storyboard.TargetName="Grid1" 
       Storyboard.TargetProperty="Opacity" 
       From="1" To="0.1" Duration="0:0:0.2" 
       FillBehavior="HoldEnd"> 
      </DoubleAnimation> 
      </Storyboard> 
     </BeginStoryboard> 
     </EventTrigger> 
     <EventTrigger RoutedEvent="TextBox.LostFocus"> 
     <BeginStoryboard> 
      <Storyboard> 
      <DoubleAnimation 
       Storyboard.TargetName="Grid1" 
       Storyboard.TargetProperty="Opacity" 
       From="0.1" To="1" Duration="0:0:0.2" 
       FillBehavior="Stop"> 
      </DoubleAnimation> 
      </Storyboard> 
     </BeginStoryboard> 
     </EventTrigger> 
    </TextBox.Triggers> 
    </TextBox> 

そうでない場合は、ストーリーボードが原因Page上の各UIElementの一人ひとりGotFocusLostFocusルーティングイベントのためにトリガされますこれらの出来事のバブル戦略。

+0

ありがとうございました。私の魅力のように機能します。 :D –

関連する問題