Procedura dettagliata: hosting di un controllo utente Windows Form tramite Progettazione WPF
In questa procedura dettagliata viene mostrato come utilizzare WPF Designer per Visual Studio per l'hosting di un controllo Windows Form composito in un'applicazione WPF. Per ulteriori informazioni sull'interoperabilità tra Windows Form e WPF, vedere Migration and Interoperability.
Di seguito sono elencate le attività illustrate nella procedura dettagliata:
Creazione del progetto.
Creazione del controllo Windows Form composto.
Hosting del controllo Windows Form in un'applicazione WPF.
Nota
È possibile che le finestre di dialogo e i comandi di menu visualizzati siano diversi da quelli descritti nella Guida a seconda delle impostazioni attive o dell'edizione del programma. Per modificare le impostazioni, scegliere Importa/Esporta impostazioni dal menu Strumenti. Per ulteriori informazioni, vedere Gestione delle impostazioni.
Prerequisiti
Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:
- Visual Studio 2010.
Creazione del progetto
Il primo passaggio consiste nella creazione del progetto per l'applicazione host.
Per creare il progetto
Creare un progetto di applicazione WPF denominato "DemoApplication". Per ulteriori informazioni, vedere Procedura: creare un nuovo progetto di applicazione WPF.
MainWindow.xaml viene aperto in WPF Designer.
In Esplora soluzioni aggiungere un riferimento all'assembly WindowsFormsIntegration, denominato WindowsFormsIntegration.dll.
In Esplora soluzioni aggiungere un riferimento all'assembly Windows Form, denominato System.Windows.Forms.dll.
Creazione del controllo Windows Form composto
In questa procedura viene illustrato come creare un controllo composto che si ridimensiona in base al proprio contenuto. Il controllo TableLayoutPanel e la proprietà AutoSize forniscono la funzionalità di layout dinamico del controllo. Per ulteriori informazioni, vedere Controllo TableLayoutPanel (Windows Form).
Per creare il controllo Windows Form composto
Aggiungere alla soluzione un nuovo progetto di libreria di controlli Windows Form denominato "DemoControlLibrary". Per ulteriori informazioni, vedere Procedura: aggiungere e rimuovere elementi di soluzione.
UserControl1 verrà aperto in Progettazione Windows Form.
Fare doppio clic su TableLayoutPanel nella Casella degli strumenti. Nell'area di progettazione verrà visualizzato un controllo TableLayoutPanel.
Selezionare Rimuovi ultima riga dal menu Smart tag Attività di TableLayoutPanel.
Nella finestra Proprietà impostare il valore della proprietà Dock su Fill.
Nella Casella degli strumenti aggiungere un controllo Label nella prima cella del controllo TableLayoutPanel.
Nella finestra Proprietà impostare le seguenti proprietà per il controllo Label:
Proprietà
Valore
AutoSize
True
Dock
Fill
Margin
0,0,0,0
Text
Enter Date:
TextAlign
MiddleCenter
Nella Casella degli strumenti aggiungere un controllo MaskedTextBox nella seconda cella del controllo TableLayoutPanel.
Fare clic sul glifo dello smart tag () sul controllo MaskedTextBox e scegliere Imposta maschera dal menu Attività di MaskedTextBox.
Verrà visualizzata la finestra di dialogo Maschera di input.
Nella colonna Descrizione maschera selezionare Data breve (o un'altra descrizione di maschera predefinita) e fare clic su OK.
Nella parte superiore della finestra Proprietà selezionare il controllo TableLayoutPanel dall'elenco a discesa.
Impostare il valore della proprietà AutoSize su true.
Nella parte superiore della finestra Proprietà selezionare UserControl1.
Impostare il valore della proprietà AutoSize su true e il valore della proprietà Size su 0,0.
UserControl1 verrà ridimensionato in base al contenuto.
Per compilare la soluzione, scegliere Compila soluzione dal menu Compila.
Hosting del controllo Windows Form in WPF
Utilizzare l'elemento WindowsFormsHost per ospitare UserControl1 in un'applicazione WPF.
Per ospitare il controllo Windows Form in WPF
Nel progetto DemoApplication di Esplora soluzioni aggiungere un riferimento al progetto DemoControlLibrary. Per ulteriori informazioni, vedere Procedura: aggiungere o rimuovere riferimenti in Visual Studio.
Aprire MainWindow.xaml in WPF Designer.
In visualizzazione XAML importare lo spazio dei nomi DemoControlLibrary inserendo il seguente mapping dello spazio dei nomi nel tag di apertura per Window. Per ulteriori informazioni, vedere Procedura: importare uno spazio dei nomi in XAML.
xmlns:dc="clr-namespace:DemoControlLibrary;assembly=DemoControlLibrary"
Dopo il tag di apertura per Grid inserire il codice seguente.
<WindowsFormsHost HorizontalAlignment="Left" VerticalAlignment="Top"> <dc:UserControl1/> </WindowsFormsHost>
Nella finestra di progettazione viene visualizzata un'area che rappresenta il controllo Windows Form ospitato.
Eseguire la soluzione per testare il controllo utente.
Passaggi successivi
È anche possibile ospitare i controlli WPF in Windows Form. Per ulteriori informazioni, vedere Utilizzo di controlli WPF.
Vedere anche
Attività
Procedura dettagliata: hosting di controlli Windows Form in WPF