2

Basically, I need a window to look like the following image: http://screenshots.thex9.net/2010-05-31_2132.png

(Is NOT resizeable, yet retains the glass border)

I've managed to get it working with Windows Forms, but I need to be using WPF. To get it working in Windows Forms, I used the following code:

 protected override void WndProc(ref Message m) { if (m.Msg == 0x84 /* WM_NCHITTEST */) { m.Result = (IntPtr)1; return; } base.WndProc(ref m); } 

This does exactly what I want it to, but I can't find a WPF-equivalent. The closest I've managed to get with WPF caused the Window to ignore any mouse input.

Any help would be hugely appreciated :)

2
  • Could you re-phrase the question perhaps, as setting "WindowStyle=None" for a WPF window appears to do exactly what you want e.g. a window with a small glass border which is re-sizable and look just like the screenshot. Commented May 31, 2010 at 12:02
  • I want the window to be NON-resizeable but retain the glass border. I made that quite clear in my question. Commented Jun 1, 2010 at 1:34

2 Answers 2

2

A very simple solution is to set the Min and Max size of each window equal to each other and to a fix number in the window constructor. just like this:

public MainWindow() { InitializeComponent(); this.MinWidth = this.MaxWidth = 300; this.MinHeight = this.MaxHeight = 300; } 

this way the user can not change the width and height of the window. also you must set the "WindowStyle=None" property in order the get the glass border.

Sign up to request clarification or add additional context in comments.

Comments

1

You need to add a hook for the message loop :

private void Window_Loaded(object sender, RoutedEventArgs e) { var interopHelper = new WindowInteropHelper(this); var hwndSource = HwndSource.FromHwnd(interopHelper.Handle); hwndSource.AddHook(WndProcHook); } private IntPtr WndProcHook(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) { if (msg == 0x84 /* WM_NCHITTEST */) { handled = true; return (IntPtr)1; } } 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.