You basically have to create your own. But, there is an example I found before of someone who made one. I modified Prism's Interaction classes quite a bit, so my ModalPopupAction may be a bit different than what you need. So instead, check out this link and download his example. It has an implementation for WPF!
Prism: InteractionRequest and PopupModalWindowAction for WPF applications
And in case you were wondering... my ModalPopupAction looks like this (but it requires some other classes of mine)
public class ModalPopupAction : TriggerAction<FrameworkElement>
{
public UserControl InteractionView
{
get { return (UserControl)GetValue(InteractionViewProperty); }
set { SetValue(InteractionViewProperty, value); }
}
// Using a DependencyProperty as the backing store for PopupDialog. This enables animation, styling, binding, etc...
public static readonly DependencyProperty InteractionViewProperty =
DependencyProperty.Register("InteractionView", typeof(UserControl), typeof(ModalPopupAction), new UIPropertyMetadata(null));
protected override void Invoke(object parameter)
{
InteractionRequestedEventArgs args = parameter as InteractionRequestedEventArgs;
if (args == null)
return;
// create the window
ModalPopupDialog dialog = new ModalPopupDialog();
dialog.Content = InteractionView;
// set the data context
dialog.DataContext = args.Interaction;
// handle finished event
EventHandler handler = null;
handler = (o, e) =>
{
dialog.Close();
args.Callback();
};
args.Interaction.Finished += handler;
// center window
DependencyObject current = AssociatedObject;
while (current != null)
{
if (current is Window)
break;
current = LogicalTreeHelper.GetParent(current);
}
if (current != null)
dialog.Owner = (current as Window);
dialog.ShowDialog();
dialog.Content = null;
dialog.DataContext = null;
args.Interaction.Finished -= handler;
}
}