private void Open_Click(object sender, RoutedEventArgs e) { var button = (Button)sender; var dialog = new ProcessResultWindow((ProcessingInfo)button.DataContext); dialog.Owner = Application.Current.MainWindow; // We must also set the owner for this to work. dialog.WindowStartupLocation = WindowStartupLocation.CenterOwner; dialog.ShowDialog(); }