【问题标题】:How can I show a ToolTip for a short period of time after clicking on a Button using attached-behaviors?使用附加行为单击按钮后,如何在短时间内显示工具提示?
【发布时间】:2019-08-20 14:10:43
【问题描述】:

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

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

【问题讨论】:

  • tooltip.AutoPopDelay = x; ?

标签: c# wpf mvvm tooltip attachedbehaviors


【解决方案1】:

简单快捷的方法:

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

【讨论】:

    猜你喜欢
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多