2016-04-13 16 views
1

Bir ElementHost denetiminde bir WPF kullanıcı denetimine ev sahipliği yaptığım bir WinForms uygulamasına sahibim. Bu WPF UserControl'den bir WPF iletişim kutusu göstermem gerekiyor. WPF Penceresini oluşturabilirken ve ShowDialog() öğesini çağırırken, ana uygulamayı "arkasına gizlemek" için iletişim kurabilirim. Bu bağlamda WPF iletişim kutusunun sahibini nasıl ayarlayabilirim?WPF Dialog Sahibini bir Winforms'dan Ayarlama ElementHost WPF UserControl

EntryDialog entryDialog = new entryDialog(); 
bool? ret = entryDialog.ShowDialog(); 
if (ret.Value == true) 
{ 
} 

cevap

0

sahibi setini almak için hile altında yatan WinForms penceresine erişmek ve her şeyi bir arada çekmek için WPF WindowInteropHelper kullanmaktı. HwndSource için

EntryDialog entryDialog = new entryDialog(); 
HwndSource source = (HwndSource)HwndSource.FromVisual(this); 
new System.Windows.Interop.WindowInteropHelper(entryDialog).Owner = source.Handle; 
bool? ret = entryDialog.ShowDialog(); 
if (ret.Value == true) 
{ 
} 

da gerekir:

using System.Windows.Interop 

Bu XAML görev çubuğu dağınıklığı azaltır

ShowInTaskbar="False"