Chciałabym, aby MessageBox nie wchodził ponad inne aplikacje

0

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;

0

A dobrze ten uchwyt okna pobierasz ?
Ja w aplikacji która działa też jako addin, ale do innego programu nie M$, uchwyt pobieram w ten sposób:

wih.Owner = Process.GetCurrentProcess().MainWindowHandle;

i smiga

0

Niestety działa to tak samo, choć faktycznie chwyta inne okienko (inne okienko mojego dodatku, podczas gdy GetForegroundWindow zwracało okienko Worda - lub Visual Studio, jeśli pod debuggerem ;)).

1 użytkowników online, w tym zalogowanych: 0, gości: 1