2011-05-03 11 views
6

bir WPF formu olarak düzenlenemez bir engelleyici olmayan iletişim olarak lanse tüm metin ile ortaya çıktı. Ben orada çalışmış sorunu & mücadele ElementHost.EnableModelessKeyboardInterop kullandı.WPF engelleyici olmayan iletişim eklentisi ben WinForms penceresinden başlatmak

Ben de bir eklenti olarak bir MS Excel aynı WPF UI açıyorum. EnableModelessKeyboardInterop kesmek orada çalışmaz. Ben düzenlemek benim WPF metin kutusu deneyin zaman, Excel doğru yöneltilir ve klavye girişi Excel yerine benim WPF metin üzerinde oluşturulur. Bunu nasıl düzelteceğinizle ilgili bir fikrin var mı?

P.S. - Bu SO benim daha önceki soruya devamında ise: WPF modeless dialog renders textbox uneditable

cevap

7

bunu çözüldü, bu bağlantının nezaket: Excel'den engelleyici olmayan WPF pencereleri gösterilirken Running WPF Application with Multiple UI Threads

  var thread = new Thread(() => 
      { 
       var wpfWindow = new WPFWindow(); 
       wpfWindow.Show(); 
       wpfWindow.Closed += (sender2, e2) => wpfWindow.Dispatcher.InvokeShutdown(); 

       Dispatcher.Run(); 
      }); 

      thread.SetApartmentState(ApartmentState.STA); 
      thread.Start(); 
+1

'EnableModelessKeyboardInterop' gerçekten çalışmıyor. Bu kodu yeniden kullanabilmek için herhangi bir WPF penceresi için çağrılabilecek genel bir statik yöntem oluşturdum. Ayrıca, uzantı yöntemlerini denedim, ancak WPF Penceresi _must_ örneğini iş parçacığı başlangıç ​​temsilcisinde oluşturulabilir; bir uzantı yöntemiyle, bir örnek zaten oluşturulmuş olurdu. – bovender

İlgili konular