WPF 窗体唤醒,判断是否已存在,存在则弹出

cs 复制代码
public void FollowControl()
{
    var existingWindow = Application.Current.Windows
        .OfType<FollowMoveControlWindow>()
        .FirstOrDefault();

    if (existingWindow != null)
    {
        // 如果窗口被最小化,恢复
        if (existingWindow.WindowState == WindowState.Minimized)
        {
            existingWindow.WindowState = WindowState.Normal;
        }
        existingWindow.Activate();
        existingWindow.Topmost = true;
        existingWindow.Topmost = false; // 闪一下置顶效果
    }
    else
    {
        var window = new FollowMoveControlWindow();
        window.WindowStartupLocation = WindowStartupLocation.CenterOwner;
        window.Owner = Application.Current.MainWindow;
        window.Show();
        window.Activate();
        window.Topmost = true;
        window.Topmost = false;
    }
}

这种适合不要单例的窗体;

如果要单例的话,我经常会在类里面定义一个窗体字段。然后保持Show出来的一直是这个字段,

关闭的时候调用Hide;

相关推荐
SamChan901 天前
PDF翻译时页眉页脚总在捣乱?跨页重复文本块的检测与过滤实测
人工智能·python·ai·pdf·wpf
samble8 天前
从零搭建灌装监控系统(四):深色主题与样式系统,ResourceDictionary 统一管理
c#·wpf·mvvm·样式·工业控制
_Jonas8 天前
.net framework开发环境正式环境配置文件的切换
.net·wpf
dalong1010 天前
WPF:Modbus 状态监控
wpf·modbus
He BianGu11 天前
【WPF-VisionMaster】机器视觉通用平台V5.0版本发行说明
opencv·c#·wpf·halcon·机器视觉·visionmaster
fogota14 天前
Emoji与Segoe MDL2 Assets的比较
c#·wpf
fogota15 天前
C# WPF 按钮加载字体图标 / 动物头像
c#·.net·wpf
fogota15 天前
C# WPF 按钮加载系统图标 / 动物头像
c#·.net·wpf
军训猫猫头15 天前
C# 封装 MySQL 自动写入与查询工具类(基于 MySqlConnector)
mysql·c#·.net·wpf
gis开发之家16 天前
Spring Boot 4 定时任务与异步线程池:从 @Scheduled 到高并发任务编排(生产级实战)
java·spring boot·后端·wpf·spring boot4