代码之家  ›  专栏  ›  技术社区  ›  Manal Goyal

RoutedEvent文本框。LostFocus在我的WPF应用程序中不工作

  •  0
  • Manal Goyal  · 技术社区  · 7 年前

    <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"/>
    

    当我运行应用程序时,点击文本框可以使淡出工作正常。但当我点击按钮时,淡入并没有启动。

    1 回复  |  直到 7 年前
        1
  •  0
  •   dymanoid    7 年前

    你应该把触发器放在 TextBox 直接,而不是在 Page 级别:

      <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>
    

    否则,将为每个事件触发故事板 GotFocus LostFocus 每个的路由事件 UIElement