2011-12-16 16 views
11

È possibile accedere a tutti gli elementi WPF da un progetto Winforms quando si seleziona "aggiungi nuovo elemento" in VS 2010? Ho solo accesso a WPF userControl per impostazione predefinita.

Vorrei aggiungere una finestra WPF a un progetto Winforms. Non solo un controllo utente.Aggiungi finestra WPF in un progetto Winforms in VS 2010

EDIT: Risposta breve: Questo non sembra essere possibile per sé, ma è possibile aggiungere risorse WPF e i riferimenti necessari manualmente.

+1

Controlla questo http://stackoverflow.com/questions/450377/upgrading-a-winforms-app-to-wpf – Atomosk

risposta

6

Apparentemente non è possibile direttamente, ma ciò che si può fare è aggiungere un nuovo controllo utente e quindi modificare il codice per renderlo una finestra. Basta creare un nuovo progetto WPF, aggiungere una finestra e vedere cosa è necessario modificare per trasformare il controllo utente in una finestra.

+0

Ho pensato di farlo ma mi aspettavo che non fosse molto semplice e un po 'spossante, quindi non ho nemmeno provato :-) Gli darò uno scatto –

+0

Bene, i primi passi sarebbero sostituire il tag UserControl con il tag Window in XAML e far estendere la classe a Window. Quindi vedi cos'altro. – Tudor

+0

Questa è probabilmente la soluzione migliore, e spiegata qui passo dopo passo: http://www.i-think22.net/archives/2008/08/05/adding-wpf-windows-to-an-existing-windows-form -project/ – surfen

4

A mio parere l'opzione "più pulita" sta usando questo schema:

  1. Creare un progetto WPF (aggiungere le finestre WPF necessarie). Chiamiamolo "WPFProject"
  2. Nella stessa soluzione creare un progetto WinForms (aggiungere qualsiasi modulo che è necessario a ). Lo chiamiamo "MainProject".
  3. In mainproject aggiungere riferimenti a:

    • WPFProject
    • PresentationCore
    • PresentationFramework

Questo è tutto, ora è possibile aprire le finestre WPF dal mainproject (ad es. premendo un pulsante):

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     Dim mywpfform = New WPFProject.MainWindow //MainWindow is the default name of your first WPF window. Obviously you can open any other 
     mywpfform .Show() 
End Sub 
+0

non capisco il downvote, sta funzionando per me ... –

+2

Il downvoting senza spiegazione è la cosa più rude che può accadere su SOF, purtroppo –

Problemi correlati