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;

相关推荐
做个文艺程序员2 天前
MQ第12篇:AI原生消息架构演进:从MQ到事件驱动的全链路设计
架构·消息队列·wpf·事件驱动架构·ai-native·cqrs
donk13144 天前
React Native for OpenHarmony 实战:三方库 react-native-circular-action-menu 的鸿蒙化适配指南
javascript·分布式·react native·react.js·wpf·harmonyos
donk13144 天前
React Native for OpenHarmony 实战:三方库 react-native-step-indicator 的鸿蒙化适配指南
分布式·react native·react.js·wpf·harmonyos
He BianGu5 天前
【笔记】WPF中RenderOptions类的详细功能
笔记·wpf
VidDown5 天前
上线三个月后的第一次事故:一个 Django 服务的日志、监控与故障复盘
数据库·python·django·wpf·音视频·视频编解码
He BianGu5 天前
【笔记】WPF中CachingHint的功能
笔记·wpf
He BianGu5 天前
【笔记】在WPF中BitmapScalingMode的作用
笔记·wpf
Vae_Mars5 天前
幂等性学习笔记
笔记·学习·wpf
samble6 天前
从零搭建灌装监控系统(十九):单元测试实战,xUnit + 内存SQLite + 反射测试私有方法
c#·wpf·mvvm·modbus·工业控制