在Storyboard隐藏它之后,无法使标签可见

时间:2012-08-19 21:21:47

标签: c# wpf

  

可能重复:
  Program isn't retrieving from taskbar after minimizing it

背景 - 我有一个ListBox,每个项目都包含几个按钮。单击按钮时,我希望标签显示一条消息,然后淡出。我有一种方法来处理设置内容,使其可见,然后使用故事板将其淡出(见下文)。

这在第一次工作正常,但在同一个Listbox项目中的任何进一步点击都不会发生任何事情 - 调试显示内容被更改等但控件永远不会变得可见。任何人都可以指出我遗漏的显而易见的事情(或者,一种有效的方式)?

private void SetLabelMessageContent(Panel panel, string message)
{
  Label lblMessage = panel.Children.OfType<Label>().First();
  if (lblMessage != null)
  {
    // Set content and make sure its visible
    lblMessage.Content = message;
    lblMessage.Visibility = Visibility.Visible;
    lblMessage.Opacity = 1.0;

    // Set the storyboard going - will fade it out
    var storyboard = lblMessage.FindResource("MessageFadeOut");
    if (storyboard is Storyboard)
    {
      ((Storyboard)storyboard).Clone().Begin(lblMessage);
    }
  }
}

MessageFadeOut资源是:

<Storyboard x:Key="MessageFadeOut">
  <DoubleAnimation BeginTime="0:0:2.0" Storyboard.TargetProperty="Opacity" From="1" To="0" Duration="0:0:0.25"/>
  <ObjectAnimationUsingKeyFrames BeginTime="0:0:2.25" Storyboard.TargetProperty="Visibility">
    <DiscreteObjectKeyFrame KeyTime="0">
      <DiscreteObjectKeyFrame.Value>
        <Visibility>Hidden</Visibility>
      </DiscreteObjectKeyFrame.Value>
    </DiscreteObjectKeyFrame>
  </ObjectAnimationUsingKeyFrames>
</Storyboard>

0 个答案:

没有答案
相关问题