Mam dodatek do Worda (VSTO), który wykorzystuje MVVM Light. Wyświetlam customowe MessageBoxy zrobione w WPF.
Niektóre MessageBoxy muszą być wyświetlone modalnie i nad wszystkimi innymi okienkami pochodzącymi z mojego dodatku. Jednocześnie chciałabym, aby inne okienka (spoza Worda) mogły ten MessageBox normalnie zasłonić. Niestety obecnie jest tak, że jak MessageBox jest na wierzchu, to jest na wierzchu absolutnie wszystkiego (choć Word i okienka w Wordzie są zasłonięte, co daje dziwny efekt).
StackOverflow podpowiada, by ustawić Ownera na okienku MessageBoxa. Niestety nie dało to u mnie żadnego efektu. Próbowałam ustawić jako Ownera okienko Worda (dodatek Wordowy nie ma własnego "głównego okienka").
Poniżej kod - MessageBox w tym wypadku to nazwa klasy okienka WPF.
var messageBox = new MessageBox();
messageBox.Caption = caption;
messageBox.Message = message;
var handle = NativeMethods.GetForegroundWindow();
var wih = new WindowInteropHelper(messageBox);
wih.Owner = handle;
messageBox.ShowDialog();
return messageBox.Result;