Updated on Kisan Patel
Problem:
In wpf how can i prevent user from moving the windows by dragging the title bar?
Solution:
Since you can’t define a WndProc
directly in WPF, you need to obtain a HwndSource, and add a hook to it :
public MainWindow() { InitializeComponent(); this.SourceInitialized += MainWindow_SourceInitialized; } private void MainWindow_SourceInitialized(object sender, EventArgs e) { WindowInteropHelper helper = new WindowInteropHelper(this); HwndSource source = HwndSource.FromHwnd(helper.Handle); source.AddHook(WndProc); } const int WM_SYSCOMMAND = 0x0112; const int SC_MOVE = 0xF010; private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) { switch(msg) { case WM_SYSCOMMAND: int command = wParam.ToInt32() & 0xfff0; if (command == SC_MOVE) { handled = true; } break; default: break; } return IntPtr.Zero; }
Source: http://stackoverflow.com/questions/2400819/wpf-disable-window-moving