/ / Problémy s obnovením ovládacích prvkov winforms v hostiteľovi WPF? - c #, wpf, winforms, užívateľské ovládacie prvky, hranol

Otázky obnovujú ovládacie prvky winforms v hostiteľovi WPF? - c #, wpf, winforms, user-controls, hranol

Hľadal som Prism hostiť starú aplikáciu Winforms. To sa používa v našej migrácii z Winforms -> WPF v našej spoločnosti. Narazil som však na niektoré otázky.

Stručne povedané, mám taký projekt:

Projekt DataManager WPF

Modul MEF, ktorý na Initialize zaregistruje zobrazenies regionálnym manažérom a odkazy na starý projekt winforms - View - ktorý obsahuje WPF UserControl a má WindowsFormsHost, ktorý poukazuje na hlavný pohľad na starý projekt winforms.

Projekt DataManager Winforms Obsahuje starý modul, ktorý je potrebné integrovať s názormi

Hostiteľ Obsahuje shell a bootstrapper - Shell má hlavnú oblasť, do ktorej sa vstrekne aplikácia WPF DataManager View.

Takže problém, ktorý mám, je nasledovný. Staré Winforms zobraziť zaťaženie správne v shell WPF cez nové zobrazenie WPF. Akýkoľvek obsah pridaný do zobrazenia po tomto sa však neaktualizuje. Snažil som sa pridať nejaké tlačidlá na obrazovku. Tiež som sa snažil vymazať všetky ovládacie prvky.

Pri pohľade okolo seba, išiel som s návrhom na počúvanie Size zmenil udalosť a volanie Child.Refresh na WPFHost, ale stále to nefungovalo.

Ide o špecifický problém týkajúci sa WPF, ako je tu diskutované: Obnovuje WPF kresbu podobnú Windows Forms?

Alebo je to problém, keď nie je správne obnovené zobrazenie v správcovi regiónov? WPF, Prism v2, Región v modálnom dialógu, pridajte oblasť do kódu za sebou

Ani jeden z nich nefunguje!

Možno budem musieť vypáliť redraw alebo podobné v samotnej kontrole winforms? Edit: Calling Refresh () po aktualizácii UI problém nevyriešil.

Edit 2: Vyskúšal to aj v starej aplikácii Winforms (.net 2.0) a zobrazil sa správne!

odpovede:

0 pre odpoveď č. 1

Ok, pridal som štandardný projekt winforms s niektorýmikontroly namiesto pôvodného projektu, ktorý používam, a fungovalo to. Pravdepodobne chýbajú niektoré kroky v inicializácii pôvodného projektu winforms.