首页 > 解决方案 > 使用附加行为单击按钮后,如何在短时间内显示工具提示?

问题描述

我想在单击后立即显示ToolTipa 。Button然后ToolTip应该在短时间内消失。这仅作为用户的反馈需要,因为单击Button会导致将字符串复制到剪贴板。

我使用 Button-BehaviorTooltip通过 Click-Event 显示 Button 的。为了显示,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用于该任务?

标签: c#wpfmvvmtooltipattachedbehaviors

解决方案


简单快捷的方法:

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

推荐阅读