Ciao
Se hai bisogno di fare in modo che la finestra non venga chiusa quando clicki sul pulsante, puoi semplicemente gestire l'evento Closing e impostare la proprietà e.Cancel a true.
Se invece cerchi anche un valore "estetico" devi impostare lo stile della classe a cui appartiene la finestra (Window class, che non ha niente a che fare con le classi dell'OOP)
Per farlo devi prima ottenere l'handle della finestra, per il compito ho trovato la classe WindowInteropHelper che serve a facilitare l'interoperabilità fra WPF e Win32. Una volta ottenuto l'handle hai bisogno dello stile corrente della classe, che ottieni con l'API GetWindowLong, e quindi dell'API SetWindowLong per impostare il nuovo stile. Il codice completo (che puoi aggiungere all'evento Loaded della Window) è questo:
[DllImport("user32.dll")]
private static extern int GetClassLongW(IntPtr hwnd, int index);
[DllImport("user32.dll")]
private static extern int SetClassLongW(IntPtr hwnd, int index, int newLong);
const int GCL_STYLE = -26;
const int CS_NOCLOSE = 0x0200;
{
//Questo oggetto facilita l'interoperabilità fra WPF e Win32,
//ci serve per ottenere l'handle della finestra corrente
System.Windows.Interop.WindowInteropHelper hp = new WindowInteropHelper(this);
//Questo è l'handle della finestra
IntPtr wnd = hp.Handle;
//Con questa chiamata si ottiene lo stile corrente della classe
int curStyle = GetClassLongW(wnd, GCL_STYLE);
//Così aggiungo il flag per lo stile "NOCLOSE" che disabilita il tasto di chiusura
curStyle |= CS_NOCLOSE;
//Ora imposta il nuovo stile
SetClassLongW(wnd, GCL_STYLE, curStyle);
}
Luca