WPF做的界面,去除掉了系统边框,怎么实现鼠标拖动界面的功能

砙謬島
2013-10-12 · TA获得超过3395个赞
知道小有建树答主
回答量:977
采纳率:0%
帮助的人:2274万
展开全部
然后背景用了一张自定义的图片,现在想实现的是手动背景图片时,整个窗体跟随移动,就像手动KMPlayer的界面一样, 于是在这个背景图片的MouseLeftButtonDown,MouseMove,MouseLeftButtonUp三个事件响应方法中做了处理,当检测到鼠标移动就同时把窗口的Left,Top值改变相应的距离,来实现指针拖动窗口的效果。 ------解决方案--------------------------------------------------------windowless this.MouseLeftButtonDown += delegate { DragMove(); }; ------解决方案--------------------------------------------------------Form 的属性 ,有设置 最大,最小的 显示 和 边框样式的 属性。 showMaxshowMinbroderStyle 有这3个样式的。设置就可以了啊 ------解决方案--------------------------------------------------------C# code public partial class MainWindow { // 在类里增加下列定义 public const int WM_NCLBUTTONDOWN = 0xA1; public const int HT_CAPTION = 0x2; [DllImport("user32.dll")] public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam); [DllImport("user32.dll")] public static extern bool ReleaseCapture(); public MainWindow() { InitializeComponent(); // 在Window的构造函数里增加下列语句: MouseLeftButtonDown += (o, args) => { var hwnd = new WindowInteropHelper(this).Handle; ReleaseCapture(); SendMessage(hwnd, WM_NCLBUTTONDOWN, HT_CAPTION, 0); }; } } C# code private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { this.DragMove(); } ------解决方案--------------------------------------------------------嗯嗯,第一种好
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式