C#桌面应用置顶

Winform和WPF开发中,有时会有需要置顶窗体的需求,本文就介绍怎么使用Win32API进行置顶

C#加载Win32API

/// <summary> 
/// 设置当前窗体位置
/// </summary> 
/// <returns></returns> 
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int y, int Width, int Height, int flags);

/// <summary> 
/// 得到当前活动的窗口 
/// </summary> 
/// <returns></returns> 
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern System.IntPtr GetForegroundWindow();

调用方法

Winform调用

Winform 中对于窗体和控件都有一个 Intptr 类型的属性 Handle,该属性指向了自身指针,可直接用于调用

SetWindowPos(this.Handle, -1, 0, 0, 0, 0, 1 | 2); //最后参数也有用1 | 4

WPF调用

WPF 中,没有直接的 Handle 属性供给调用,需要使用 WindowInteropHelper 来获得窗体的引用,在进行置顶

SetWindowPos(new WindowInteropHelper(this).Handle, -1, 0, 0, 0, 0, 1 | 2);
发布时间:2021-10-10
其他阅读

我的读书清单

分享互联网人的读书清单,从2024年开始,本文会整理我读过的书籍,按时间排序,编辑成一份读书清单。

查看原文

Angular中制作一个按钮组件

本文将会介绍如何在Angular中制作一个按钮组件,直接在原生按钮上添加特性即可使用,还提供多种颜色方便切换。

查看原文

Apple网页中滚动效果

打开Apple官网查看iPhone页面,我们可以看到一个特殊效果,当你滚动鼠标时,页面不出现滚动效果,但内容却在变化。现在,基于 position : sticky 可以很容易实现这个效果。

查看原文

vscode Material Design Theme

Material Design Theme 是由猪头少年(scung-cn)开发的一套基于 Material Design 设计语言的 Visual Studio Code 主题插件,可以在扩展市场上直接下载安装。

查看原文

Nginx代理AspNetCore跨域问题

在前后端分离开发中,经常出现跨域的问题,本文是记录使用Nginx来反向代理AspNetCore应用时的跨域问题

查看原文