原文:WPF 精修篇 窗体唯一(Single) 显示在最前

只运行一个窗体 并在一次点击时 显示到最前

发现用

SetForegroundWindow 并不是稳定的有效

最后使用 SetWindowPos

贴码了


  1. public const int HWND_TOPMOST = -1;
  2. public const int HWND_NOTOPMOST = -2;
  3. protected override void OnStartup(StartupEventArgs e)
  4. {
  5. bool isNewInstance;
  6. base.OnStartup(e);
  7. Mutex mutex = new Mutex(true, "Single", out isNewInstance);
  8. if (isNewInstance != true)
  9. {
  10. IntPtr intPtr = FindWindowW(null, "Single");
  11. if (intPtr != IntPtr.Zero)
  12. {
  13. SetWindowPos(intPtr, HWND_TOPMOST, 0, 0, 0, 0, 1 | 2);
  14. SetWindowPos(intPtr, HWND_NOTOPMOST, 0, 0, 0, 0, 1 | 2);
  15. SetForegroundWindow(intPtr);
  16. }
  17. Shutdown();
  18. }
  19. }
  20. [DllImport("User32", CharSet = CharSet.Unicode)]
  21. static extern IntPtr FindWindowW(String lpClassName, String lpWindowName);
  22. [DllImport("User32", CharSet = CharSet.Unicode)]
  23. static extern Boolean SetForegroundWindow(IntPtr hWnd);
  24. [DllImport("user32.dll", CharSet = CharSet.Auto)]
  25. private static extern int SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int y, int Width, int Height, int flags);
  26. [DllImport("user32.dll")]
  27. public static extern IntPtr SetFocus(IntPtr hWnd);

代码:

https://download.csdn.net/download/q465162770/12003540

WPF 精修篇 窗体唯一(Single) 显示在最前的更多相关文章

  1. WPF 精修篇 page

    原文:WPF 精修篇 page 前言 前段时间看UML 大象 这本书 虽然马上看到了精华片 最后还是暂时暂停 因为这本书 很好 但是暂时对现在的我来说 有点超前 很多东西理解起来还是很难 但是 这本书 ...

  2. WPF 精修篇 样式继承

    原文:WPF 精修篇 样式继承 这个 是新知识 样式可以继承 <Style x:Key="TextBlockStyleBase" TargetType="{x:Ty ...

  3. WPF 精修篇 数据绑定 更新通知

    原文:WPF 精修篇 数据绑定 更新通知 开始更新一点有意思的了 首先 数据绑定  其中之一 Element 绑定 看例子 <Window x:Class="WpfApplicatio ...

  4. WPF 精修篇 Winform 嵌入WPF控件

    原文:WPF 精修篇 Winform 嵌入WPF控件 首先 创建WPF控件库 这样就有了一个WPF界面 在wpf中增加界面等 在winform中增加WPFDLL 重新生成解决方案 在左侧工具栏 出现W ...

  5. WPF 精修篇 缩放ScaleTransform

    原文:WPF 精修篇 缩放ScaleTransform 缩放 ScaleTransform 参数 ScaleX  X轴缩小值 正常为1 ScaleY Y轴缩小值 正常为1 CenterY ,Cente ...

  6. WPF 精修篇 获取系统颜色和字体样式

    原文:WPF 精修篇 获取系统颜色和字体样式 看效果 <Grid> <Rectangle Fill="{DynamicResource {x:Static SystemCo ...

  7. WPF 精修篇 管理资源字典

    原文:WPF 精修篇 管理资源字典 样式太多  每个界面可能需要全局的样式 有没有肯能 WPF 中的样式 像Asp.net中 的CSS一样管理那 有的 有资源字典 BurshDictionary &l ...

  8. WPF 精修篇 动态资源

    原文:WPF 精修篇 动态资源 动态资源 使用 DynamicResource 关键字 静态 就是 StaticResource 原则上是 能用静态就用静态 动态会让前台界面压力很大~ 动态资源引用 ...

  9. WPF 精修篇 数据触发器

    原文:WPF 精修篇 数据触发器 数据触发器 可以使用Binding 来绑定控件 或者数据源 来触发相关动作 举栗子 <Window.Resources> <Style Target ...

随机推荐

  1. Fiddler常用设置

    1.设置抓取HTTPS请求 勾选后弹窗添加证书确认框 点击yes后,弹出警告 点击是,成功添加证书 点击OK确认,设置成功了 成功抓取到HTTPS请求 2.自定义会话框,展示GET和POST请求 3. ...

  2. linux_ext4恢复超级块.txt

    恢复ext4文件系统superblock 2014-04-01 17:00:17 分类: Linux 恢复ext4文件系统superblock1. Create ext4 文件系统.[root@loc ...

  3. Self Service Password 密码策略

    1.在活动目录中新建一个用户,并赋予域管理员权限:2.拷贝conf目录下的config.inc.php为config.inc.local.php:3.按自己的实际情况及要求修改config.inc.l ...

  4. Appium使用总结

    目前在使用appium过程中遇到的一些问题及规避方法总结如下: Appium使用总结:1.在熄屏下启动测试,会自动唤醒屏幕2.Appium只针对单个应用测试3.使用unittest框架,该框架中每条用 ...

  5. 淘宝爬取图片和url

    刚开始爬取了 百度图片和搜狗图片 但是图片不是很多,随后继续爬取淘宝图片,但是淘宝反爬比较厉害 之前的方法不能用 记录可行的 淘宝爬取 利用selenium爬取 https://cloud.tence ...

  6. MyBatis核心对象之StatementHandler

    MyBatis核心对象之StatementHandler StatementHandler ResultHandler ParameterHandler Executor org.apache.iba ...

  7. Hive参数调优

    调优 Hive提供三种可以改变环境变量的方法,分别是: (1)修改${HIVE_HOME}/conf/hive-site.xml配置文件: 所有的默认配置都在${HIVE_HOME}/conf/hiv ...

  8. python文件的使用

    文件是一个存储在辅助存储器上的数据序列,可以包含任何数据内容.概念上,文件是数据的集合抽象,类似地,函数是程序的集合和抽象.用文件形式组织和表达数据更有效也更为灵活.文件包括两种类型:文本文件和二进制 ...

  9. Linux下shell脚本实现mongodb定时自动备份

    MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功 ...

  10. Maven使用之packaging类型

    项目的打包类型:pom.jar.war 项目中一般使用maven进行模块管理,每个模块下对应都有一个pom文件,pom文件中维护了各模块之间的依赖和继承关系.项目模块化可以将通用的部分抽离出来,方便重 ...