使用附加行为单击按钮后,如何在短时间内显示工具提示?

How can I show a ToolTip for a short period of time after clicking on a Button using attached-behaviors?

我想在点击后立即显示 ToolTipButtonToolTip 应该会在短时间后消失。这只是作为对用户的反馈,因为单击 Button 会导致将字符串复制到剪贴板。

我使用 Button-Behavior 通过 Click-Event 显示按钮的 Tooltip。为了显示 ToolTip,我将其 IsOpen 属性 设置为 true。

class ForceToolTipBehavior : Behavior<Button>
{
    protected override void OnAttached()
    {
        base.OnAttached();

        this.AssociatedObject.Click += AssociatedObject_Click;
    }

    private void AssociatedObject_Click(object sender, System.Windows.RoutedEventArgs e)
    {
        var tooltip = this.AssociatedObject.ToolTip as ToolTip;

        tooltip = new ToolTip();

        tooltip.Content = "Log was copied to your Clipboard";

        tooltip.IsOpen = true;        
    }
}

这很好用,但 ToolTip 保持打开状态。有什么优雅的方法可以让 ToolTip 在一秒钟后消失吗?是否可以使用 ToolTipService 完成该任务?

简单快捷的方法:

private void AssociatedObject_Click(object sender, System.Windows.RoutedEventArgs e)
{
    var tooltip = this.AssociatedObject.ToolTip as ToolTip;

    tooltip = new ToolTip();

    tooltip.Content = "Log was copied to your Clipboard";

    tooltip.IsOpen = true;  

    HideToolTip(tooltip);   
}

private async void HideToolTip(ToolTip toolTip)
{
    await Task.Delay(3 * 1000); // 3 second
    toolTip.IsOpen = false;
}