C#或者WPF中让某个窗体置顶
2016-03-31 20:45
1256 查看
前记:在工作中有个需求,要求不管到那个界面,我必须让一个浮动条(其实是个窗体)置顶。
我用wpf,因为有之前有好几个界面已经设置成topmost了,所以在这几个界面,我的浮动条会被遮挡。为了始终让浮动条在最顶端,我写了个简单的工具类。在前面已经设置成topmost的窗体的Window_Loaded中调用这个工具类里的方法实现了始终让浮动条置顶。
工具类代码如下:
这个类里的几个方法详解
SetWindowPos方法详解请戳这里
ShowWindow方法详解请戳这里
FindWindow方法详解请戳这里
写的比较粗糙,就当给自己做笔记!
我用wpf,因为有之前有好几个界面已经设置成topmost了,所以在这几个界面,我的浮动条会被遮挡。为了始终让浮动条在最顶端,我写了个简单的工具类。在前面已经设置成topmost的窗体的Window_Loaded中调用这个工具类里的方法实现了始终让浮动条置顶。
工具类代码如下:
public class TopMostTool { public static int SW_SHOW = 5; public static int SW_NORMAL = 1; public static int SW_MAX = 3; public static int SW_HIDE = 0; public static readonly IntPtr HWND_TOPMOST = new IntPtr(-1); //窗体置顶 public static readonly IntPtr HWND_NOTOPMOST = new IntPtr(-2); //取消窗体置顶 public const uint SWP_NOMOVE = 0x0002; //不调整窗体位置 public const uint SWP_NOSIZE = 0x0001; //不调整窗体大小 public bool isFirst = true; [DllImport("user32.dll")] public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int cx, int cy, uint uFlags); [DllImport("user32.dll", EntryPoint = "ShowWindow")] public static extern bool ShowWindow(System.IntPtr hWnd, int nCmdShow); [DllImport("user32.dll")] FindWindow(string lpClassName,string lpWindowName); /// <summary> /// 在外面的方法中掉用这个方法就可以让浮动条(CustomBar)始终置顶 /// CustomBar是我的程序中需要置顶的窗体的名字,你们可以根据需要传入不同的值 /// </summary> public static void setTopCustomBar(){ IntPtr CustomBar = FindWindow(null,"CustomBar"); //CustomBar是我的程序中需要置顶的窗体的名字 if(CustomBar!=null){ SetWindowPos(CustomBar, MainWindow.HWND_TOPMOST, 0, 0, 0, 0, MainWindow.SWP_NOMOVE | MainWindow.SWP_NOSIZE); } } }
这个类里的几个方法详解
SetWindowPos方法详解请戳这里
ShowWindow方法详解请戳这里
FindWindow方法详解请戳这里
写的比较粗糙,就当给自己做笔记!
相关文章推荐
- C#实现子窗体与父窗体通信方法实例总结
- Delphi实现窗体感知鼠标滑过并自动隐藏与显示窗口的方法
- C#及WPF获取本机所有字体和颜色的方法
- winform实现拖动文件到窗体上的方法
- WPF MVVM示例讲解
- WPF实现时钟特效
- PowerShell中调用WPF生成炫酷窗口实例
- c#窗体传值用法实例详解
- C#简单实现子窗体向父窗体传值的方法
- C#实现窗体间传递数据实例
- C#模拟MSN窗体抖动的实现代码
- C#透明窗体实现方法
- C#实现打开画图的同时载入图片、最大化显示画图窗体的方法
- C#设置MDI子窗体只能弹出一个的方法
- C#禁用双击窗体图标关闭窗体的方法
- WPF实现类似360安全卫士界面的程序源码分享
- WinForm窗体间传值的方法
- C#实现随鼠标移动窗体实例
- C#中WPF使用多线程调用窗体组件的方法
- C#实现将窗体固定在显示器的左上角且不能移动的方法