Ciao Antonio,
disabilitare il pulsante chiudi [x] della finestra è possibile ma potrebbe essere complicato.
Ci sono però altre due possibilità:
Possibilità 1: gestire nel ViewModel l'evento Closing della finestra ed annullare la sua chiusura se necessario.
Window Code Behind
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
// Creo il ViewModel
var viewModel = new MainWindowViewModel();
// Aggiungo il metodo del ViewModel come gestore dell'evento Closing della finestra
this.Closing += viewModel.OnWindowClosing;
DataContext = viewModel;
}
}
Nel tuo ViewModel devi avere il metodo gestore dell'evento
public void OnWindowClosing(object sender, System.ComponentModel.CancelEventArgs e)
{
// Annulla la chiusura della finestra se occupati
e.Cancel = _isBusy;
}
Possibilità 2: rimuovere il bordo della finestra con tutti i pulsanti standard tramite la proprietà
WindowStyle=None. Aggiungere i pulsanti che desideri per la chiusura e/o iconizzazione della finestra con lo stile che preferisci. A questo punto hai il completo controllo del Look&Feel dei tuoi pulsanti.