You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP如何在用户执行特定操作时显示数秒的简单提示消息

UWP 操作成功自动消失居中提示实现方案

你可以通过以下两种常用方案实现需求,两种都可以完美适配MVVM架构:

方案1:使用系统内置 TeachingTip 控件(推荐,无需自定义样式)

TeachingTip 是WinUI 2原生提供的提示控件,UWP直接支持,自带弹出/消失动画,无需额外自定义样式。

实现步骤

  1. 在页面/主窗口的根布局(如Grid)中添加控件代码:
<Grid x:Name="RootGrid">
    <!-- 其他页面内容 -->
    <TeachingTip 
        x:Name="SuccessTip"
        Placement="Center"
        IsLightDismissEnabled="True"
        Title="操作成功"
        Content="任务已成功完成"
        CornerRadius="4">
    </TeachingTip>
</Grid>
  1. 在ViewModel中任务执行完成后,通过MVVM消息通知机制(如MVVM Toolkit的WeakReferenceMessenger、自定义事件等)发送成功通知。
  2. 在页面后台代码中接收通知,执行提示显示逻辑:
// 接收成功通知后的执行逻辑
private void ShowSuccessTip()
{
    // 切到UI线程执行
    _ = Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
    {
        SuccessTip.IsOpen = true;
        // 3秒后自动关闭
        var timer = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(3) };
        timer.Tick += (s, e) =>
        {
            SuccessTip.IsOpen = false;
            timer.Stop();
        };
        timer.Start();
    });
}

方案2:使用 Popup 自定义轻量提示

如果需要完全自定义提示的样式、动画,可以用Popup实现:

  1. 在根布局中添加Popup定义:
<Popup x:Name="SuccessPopup" IsLightDismissEnabled="True">
    <Border 
        Background="#2D2D2D" 
        CornerRadius="8" 
        Padding="24,16"
        HorizontalAlignment="Center"
        VerticalAlignment="Center">
        <TextBlock Text="任务已成功完成" Foreground="White" FontSize="14"/>
    </Border>
</Popup>
  1. 显示逻辑和上面一致,只需要把SuccessTip.IsOpen替换为SuccessPopup.IsOpen即可,同时可以手动调整Popup的HorizontalOffset和VerticalOffset保证完全居中。

注意事项

  • 所有UI操作必须在UI线程执行,后台线程执行完任务后要通过Dispatcher切换到UI线程再操作提示控件
  • 提示控件要放在根布局的最末尾,保证层级最高不会被其他控件遮挡
  • 自动关闭的时长可根据需求自行调整,常规场景设置2-4秒即可

内容的提问来源于stack exchange,提问作者Nisha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 15:21:03