2016-11-03 2 views
0

Gut für die ganze Gemeinde. Ich arbeite in Visual Studio 2015, in C# und WPF-Technologie. Ich muss in ein Fenster meines Programms ein anderes Fenstersystem eines Drittanbieter-Systems wie Notepad einbetten.Einbetten einer Anwendung in einem WPF-Fenster

Ich fand die Antwort here (tut mir leid, die Website ist in Spanisch), aber es funktioniert nur mit Windows Form.

Dies ist mein Code.

Wie gesagt, das funktioniert für Windows Forms, aber in WPF funktioniert nicht. Jemand kann mir helfen?

+0

Sie sind fast da zu bewegen und neu streichen, sollten Sie den Code richtig zusammengesetzt gerade. –

Antwort

0

Hier ist der Code, das Problem war, dass Sie Position, Breite, Höhe festlegen und das untergeordnete Fenster im neuen übergeordneten Fenster neu streichen müssen.

public void CapturarApp() 
     { 
      hWndApp = ScreenFuntion.getWindow("Notepad"); 
      if (hWndApp.ToInt32() > 0) 
      { 
       ProgramsEncrustForm.MoveWindow(hWndApp, 
        0, 0, 
        Int32.Parse(Width.ToString()), 
        Int32.Parse(Height.ToString()), 1); 
       ProgramsEncrustForm.SetParent(hWndApp, new WindowInteropHelper(this).Handle); 
      } 
      else 
      { 
       hWndApp = IntPtr.Zero; 
      } 
      this.Show(); 
     } 

Und hier ist die Methode, um das Fenster

[System.Runtime.InteropServices.DllImport("user32.dll")] 
public extern static int MoveWindow(IntPtr hWnd, int x, int y, 
    int nWidth, int nHeight, int bRepaint); 
+0

Ich glaube, [dieser Beitrag] (http://stackoverflow.com/a/40410219/3110834) beantwortet Ihre Frage und auch der Kommentar behebt das Problem, das * Sie können auch Notizblock neu positionieren, nachdem Sie es zu Ihrem Fenster hinzugefügt haben . Zu diesem Zweck können Sie die SetWindowPos-Methode verwenden *. In solchen Fällen mit einer vollständigen Antwort müssen Sie keine eigene Antwort posten. Sie können einige Kommentare zur Anwendung der Lösung posten, da der, der Ihre Frage beantwortet hat, gesagt hat: * Lassen Sie mich wissen, wenn Sie Probleme bei der Anwendung der Lösung haben * . Ich habe auch "SetWindowPos" zur Antwort hinzugefügt. –

Verwandte Themen