2012-05-23 2 views
5

Ich migriere einen Teil eines WinForms-Projekts in WPF.Wie Sie WinForm User Control in WPF hinzufügen, so dass ich es in der Datei xaml.cs referenzieren kann

Ich möchte ein vorhandenes WinForms-Benutzersteuerelement in einem WPF-Formular hinzufügen. Das WinForm-Benutzersteuerelement heißt "TicketPrinter" und befindet sich im selben Projekt wie das WPF-Formular.

In meiner XAML Ich habe diese Zeile:

xmlns:Printers="clr-namespace:Project.UserControls.Printers" 

Und dann habe ich es in meiner XAML verwenden hier:

 <WindowsFormsHost Height="430" HorizontalAlignment="Left" Margin="468,12,0,0" Name="windowsFormsHost1" VerticalAlignment="Top" Width="324"> 
      <Printers:TicketPrinter Printers:Name="ZapTicketPrinter"> 
      </Printers:TicketPrinter> 
     </WindowsFormsHost> 
    </Grid> 
</Window> 

Als ich das Projekt der Benutzer die Kontrolle über die Form, wie erwartet, erscheint auf .

Aber wenn ich in den Code hinter XAML.CS-Datei gehen und versuchen, auf "ZapTickPrinter" zuzugreifen, ist es nicht als Referenz verfügbar.

heißt

Ich versuche mit ZapTicketPrinter und es wird nicht erkannt.

Ich habe auch versucht, die folgenden:

TicketPrinter ticketPrinter = this.FindName("ZapTicketPrinter") as TicketPrinter; 

aber ein Null

Was bekommen bin ich dabei? Wie referenziere ich den Namen in meinem Code?

Antwort

3

Versuchen Sie folgenden Code:

private void LoadWFUserControl() 
{ 
    // Initialize a Host Control which allows hosting a windows form control on WPF. Ensure that the WindowsFormIntegration Reference is present. 
    System.Windows.Forms.Integration.WindowsFormsHost host = 
     new System.Windows.Forms.Integration.WindowsFormsHost(); 

    // Create an object of your User control. 
    MyWebcam uc_webcam = new MyWebcam(); 

    // Assign MyWebcam control as the host control's child. 
    host.Child = uc_webcam; 

    // Add the interop host control to the Grid control's collection of child controls. Make sure to rename grid1 to appr 
    this.grid1.Children.Add(host); 
} 
Verwandte Themen