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;

相关推荐
郝学胜-神的一滴1 天前
AI 编程智能体 27:吃透MCP通信机制
人工智能·python·langchain·wpf·numpy·scikit-learn
波力海苔夹心脆6752 天前
C# WPF 资源字典详解:ResourceDictionary、MergedDictionaries 与自定义控件案例
开发语言·c#·wpf·入门教程·resource·资源字典
陈仓主教2 天前
# WPF CheckBox 控件详解与使用—WPF 中的控件(6)--复选框控件(CheckBox)
wpf
光泽雨4 天前
WPF 音视频四大核心方案对比
wpf·音视频
浪扼飞舟5 天前
WPF(数据绑定)
wpf
samble6 天前
从零搭建半导体设备上位机(四):单实例、启动流程与配置文件,App 里那 526 行到底在干什么
wpf·配置文件·单实例
浪扼飞舟6 天前
WPF(控件的继承树、内容控件、布局控件)
wpf
avi91119 天前
电影开源Jevdo - 源码介绍(vue版)没有android 和 没有wpf
android·wpf·框架·数据爬虫·meego·电影管理
吾与谁归in10 天前
C#脚本工具,支持智能提示自动补全(WPF + Roslyn + AvalonEdit)
开发语言·c#·wpf
昂好的day10 天前
WPF 从零入门(上):WPF 是什么、XAML 语法、布局与样式全解
开发语言·c#·wpf