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;

相关推荐
程序员清风4 小时前
从单体应用到微服务:后端系统拆分的基本方法
微服务·架构·wpf
FuckPatience1 天前
WPF 改变根据某一列条件改变行样式
wpf
dalong102 天前
WPF:DataGrid样式
wpf
samble4 天前
从零搭建工业控制系统(二十二):线程安全与并发控制
c#·wpf·并发·mvvm·线程安全·工业控制
姜穆澜4 天前
OneID 从 0 到 1 完整生产案例(三)
大数据·wpf
dalong104 天前
WPF:MVVM 示例
大数据·wpf
samble4 天前
从零搭建工业控制系统(二十一):状态管理系统——中心状态对象设计
c#·wpf·mvvm·状态管理·工业控制
mengge.cloud5 天前
存储技术基础小白教程
linux·运维·服务器·wpf·存储
DreamLife☼5 天前
复杂Agent系统架构设计
系统架构·wpf·agent·组件·设计·构架·说明