C# WPF 让你的窗口始终钉在桌面上

原文:C# WPF 让你的窗口始终钉在桌面上

            IntPtr hWnd = new WindowInteropHelper(Application.Current.MainWindow).Handle;
            IntPtr hWndProgMan = FindWindow("Progman", "Program Manager");
            SetParent(hWnd, hWndProgMan);

  

 

        [DllImport("user32.dll", SetLastError = true)]
        static extern int SetWindowLong(IntPtr hWnd, int nIndex, IntPtr dwNewLong);
        [DllImport("user32.dll", SetLastError = true)]
        static extern IntPtr FindWindow(string lpWindowClass, string lpWindowName);
        [DllImport("user32.dll", SetLastError = true)]
        static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string className, string windowTitle);
        const int GWL_HWNDPARENT = -8;
        [DllImport("user32.dll")]
        static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

  

 var handle = new WindowInteropHelper(Application.Current.MainWindow).Handle;
            IntPtr hprog = FindWindowEx(
                FindWindowEx(
                    FindWindow("Progman", "Program Manager"),
                    IntPtr.Zero, "SHELLDLL_DefView", ""
                ),
                IntPtr.Zero, "SysListView32", "FolderView"
            );
            SetWindowLong(handle, GWL_HWNDPARENT, hprog);

  

时间: 2024-10-28 04:37:54

C# WPF 让你的窗口始终钉在桌面上的相关文章

vb.net如何是窗口钉在桌面上呀

问题描述 vb.net如何是窗口钉在桌面上呀????????????????? 解决方案 解决方案二:PublicClassForm1Dimx,yAsIntegerPrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Loadx=Me.Location.Xy=Me.Location.YEndSubPrivateSubForm1_Move(ByValsenderAsObject,

[WPF疑难]如何禁用窗口上的关闭按钮

哈哈,主要是调用RemoveMenu这个API,所以没什么好说的,直接"干货"吧: namespace VersatileMessageBoxLib { using System; using System.Windows.Interop; using System.Runtime.InteropServices; public class CloseButton { [DllImport("user32", CharSet = CharSet.Ansi, SetL

解决IE窗口始终最小化的问题

  有些用户由于一些误操作,导致每次打开的新窗口都是最小化窗口,即便单击"最大化"按钮后,下次启动IE后新窗口仍旧是最小化的. 这是什么原因呢?这是由于IE具有"自动记忆功能",它能保存上一次关闭窗口后的状态参数,IE本身没有提供相关设置选项,不过可以借助修改注册表来实现,下面小编教你一种解决方法.在"开始--运行"里面输入regedit打开"注册表编辑器",找到[HKEY_ CURRENT_USERSoftwareMicro

如何设置电脑中打开的窗口始终保持在最前端显示

  1.首先下载DeskPins软件,进行解压,并安装; 2.安装完成后,点击运行; 3.该软件运行时会显示在右下角任务栏通知区域中; 4.在需要设置显示在最前端的窗口中,点击该软件的图标则会出现一个红色的钉子,将其移动到窗口右上角即可进行固定; 5.这样就会在多个窗口中,使得该窗口始终保持在最前端显示; 6.如果需要取消,则直接点击窗口中的红色钉子即可. 以上就是在电脑中设置打开的窗口始终保持在最前端显示的方法.

WPF弹出自定义窗口的方法_C#教程

本文实例讲述了WPF弹出自定义窗口的方法.分享给大家供大家参考,具体如下: 测试环境: [1]VS2010SP1 [2]WPF(.NET Framework 4)项目 内容简介 WPF工程如何弹出自定义窗口 第一步:自定义个窗口 为当前项目新添个Window项,XAML部份的代码略,下面是C#部份的代码. namespace WorkflowBuilder.MyWindows { /// <summary> /// Interaction logic for InputStringWindow

[WPF疑难] 继承自定义窗口

项目中有不少的弹出窗口,按照美工的设计其外边框(包括最大化,最小化,关闭等按钮)自然不同于Window自身的,但每个弹出框的外边框都是一样的.对其中一个窗口而言,我们要取消其Window边框,并在右上角摆上三个按钮并编写其点击事件等,但若每个弹出窗口都按照这种方式做一遍就太土了.我们想避免重复劳动,最自然的联想到了"继承".但WPF给我们找了若干麻烦,被挫败了几次.今天经过2小时的奋战,终于搞定了,分享一下. 挫败1,继承时编译错误 假设我们写好的父窗口类为BaseWindow,对应B

好玩的WPF第一弹:窗口抖动+边框阴影效果+倒计时显示文字

大家一进到博客就应该看到这张GIF了吧--好吧,今天不是星期一-- 那么就来一起做做这个效果啦!看完记得点赞哦~ 新建一个WPF项目 如果新建WPF项目应该不用我说了吧,在C#下面找找就好了. MainWindow.xaml 在初始的Window下添加如下属性: x:Name="mainWindow" WindowStartupLocation="CenterScreen" WindowState="Normal" WindowStyle=&qu

WPF 如何调用子窗口

问题描述 我用WPF建了一个MainWindow,之后想建个属性窗口,名字为onewindow:想在主窗口代码如:privatevoidstop_Click(objectsender,RoutedEventArgse){}调用子窗口,想问一下怎么实现,谢谢 解决方案 解决方案二:newDiaglog,然后show()解决方案三:onewindowow=newonewindow();ow.show();///这个弹出后,主窗口可以点击,操作//ow.DiaglogShow();///这个弹出子窗口

WPF实现Winform的窗口消息WndProc的例子

昨天在项目开发中,遇到了USB口拔插的操作,想在程序中,实现对com口拔插的监控,但是常规的WndProc是在winform实现的,所以查询了一下wpf是怎么实现的. 有下面的方法,测试可行: 1.USB消息结构的定义  // usb消息定义         public const int WM_DEVICE_CHANGE = 0x219;         public const int DBT_DEVICEARRIVAL = 0x8000;         public const int