c# - 使用附加行为单击按钮后,如何在短时间内显示工具提示?
问题描述
我想在单击后立即显示ToolTip
a 。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
用于该任务?
解决方案
简单快捷的方法:
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;
}
推荐阅读
- linux - 带有命令外壳结果的 For 循环
- node.js - 如何在 Sequelize 中访问多对多关系的直通表
- ios - iOS 15 中极为罕见的小部件更新
- scala - ArrayBuffer 元素没有在 Scala 中被交换
- ios - 在 UIView 中创建内部阴影以复制 Neumorphic Style
- swiftui - 导航视图格式问题
- r - 以简单的方式导入、编辑和保存 JSON?
- node.js - 如何在 Node.js 中使用 Cloud Tasks 实现拉取队列
- rust - 在可变结构上使用 RwLock.read()
- flutter - 找不到“openssl”提供的包配置文件