I had the similar problem.
You can remove the entire control box (Maximum, Minimum and Close buttons).
Then add a button at the top right of the dialog which looks like Minimize button.
Add Minimize button functionality to that button.
Following could be the UI code for that:
<DockPanel LastChildFill="True">
<DockPanel VerticalAlignment="Center" DockPanel.Dock="Top">
<Button DockPanel.Dock="Right" Content="-" Width="20" Height="20" Margin="5,5,5,5" FontSize="15" HorizontalAlignment="Right"/>
</DockPanel>
searchDialogWindow.ResizeMode = ResizeMode.CanMinimize;
searchDialogWindow.WindowStartupLocation = WindowStartupLocation.CenterScreen;
searchDialogWindow.WindowStyle = WindowStyle.None;
However, one drawback of this could be you cannot drag the dialog..
Other solution I thought is putting a method in closing event and close the window only in certain condition minimize other conditions.
searchDialogWindow.Closing += SearchDialogWindowOnClosing;
private void SearchDialogWindowOnClosing(object sender, CancelEventArgs cancelEventArgs)
{
searchDialogWindow.WindowState = WindowState.Minimized;
cancelEventArgs.Cancel = isSearchInProgress;
}