Mevcut bir Windows Forms/MFC uygulama altyapısında (Rhino 3D) tüketilmek üzere WPF'de bir UI Denetimi geliştiriyoruz.WPF TextBox kabul etmiyor Pencere Formlarında ElementHost Girişinde
Uygulama altyapısı, Windows Forms denetimlerini, Motorlar Arabirimine takılabilen bir alt pencerenin içine koymanıza izin veren bir "Dockbar" yaratma yeteneğini açığa çıkarır.
Basit bir WPF TextBox'ı, Dockbar'a eklenen bir ElementHost denetiminin içine koymaya çalışıyorum. Bu ilk bakışta iyi çalışıyor gibi görünüyor; ancak TextBox'a yazmayı denedikten sonra sadece belirli diziler TextBox'ta görünür. , geri AL, KOPYALAMAYIN, MACUNU ve Metin seçme eser SİL. A-Z, 1-9 vb. Yazarsanız bu tuşlar görünmez.
Ben net DOLAŞTILAR ve ElementHost.EnableModelessKeyboardInterop()
duymuşsunuzdur ama bu sadece WPF, Windows formdan oluşturulan için de geçerlidir. Sadece WPF UserControls yaratıyorum ve bunları ElementHost denetiminde barındırıyorum. KeyUp PreviewKeyDown, PreviewKeyUp,
System.Windows.Threading.Dispatcher.Run();
:
Ben Dispatcher.Run() hakkında konuştuk bir yazı gördüm ve çeşit çalışır ancak form kalanı keser ve KeyDown olayları, TextBox'taki tüm yangın olaylarıdır, ancak TextBox'ta hiçbir metin görünmez.Windows İletileri hakkında pek bir şey bilmiyorum, ancak WinSpector kullanarak TextBox'tan WM_GETTEXT iletisinin gelmediğini fark ettim (eğer bilmeseler bile).
Ayrıca yeni bir Windows Forms projesi oluşturuyorum ve aynı şeyi orada yaptım ve iyi çalışıyor, bu yüzden Windows'un Rhino 3D motorunda nasıl oluşturulduğu ve yuvaya alındığıyla ilgili bir sorun olmalı. ...
MFC iletişim penceresi alıyordu WM_CHAR
ElementHost el = new ElementHost();
System.Windows.Controls.TextBox t = new System.Windows.Controls.TextBox();
t.Width = 100;
t.Text = "TEST";
el.Child = t;
panel1.Controls.Add(el);
Teşekkürler, bu tam olarak ihtiyacım olan şeydi. Aşağıda önerilen IvanH gibi UserControl'e koydum. ÇALIŞIYOR bir cazibe gibi! –
Teşekkürler! Bu bugün bizim için bir sorun olarak ortaya çıktı ve bu hızla çözüldü! –