Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1908, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

VSTO 2008: Utilizzare controlli WPF nelle soluzioni Office con VB 2008

In un precedente post abbiamo visto come, utilizzando Visual Basic 2008 e i Visual Studio Tools for Office, sia possibile utilizzare controlli Windows Forms nelle soluzioni a livello di documento per Word ed Excel 2007.

In realtà, è possibile utilizzare anche controlli Windows Presentation Foundation anche se questa tecnica richiede qualche passaggio in più, dal momento che le applicazioni di Office non sono in grado di ospitare direttamente questo tipo di controlli; bisogna, quindi, ricorrere all’interoperabilità tra le due tecnologie.

Ipotizzate di aver creato una soluzione Visual Basic 2008 per la gestione di un documento di Excel 2007. Il primo passaggio da realizzare è quello di creare un controllo utente Windows Forms, aggiungendolo alla soluzione. Dalla toolbox, trascinate sulla superficie del controllo un oggetto ElementHost e impostatene la proprietà Dock su Fill.

 

Fatto questo, aggiungete un riferimento ai seguenti assembly di WPF:

 

·         WindowsBase.dll

·         PresentationCore.dll

·         PresentationFramework.dll

 

A questo punto si può passare ad implementare un controllo WPF utilizzando codice managed (non possiamo, ovviamente, farlo tramite XAML). Vogliamo, all’interno dell’user control, aggiungere un controllo Expander di WPF. Ipotizzando di aver rinominato il nostro user control in HostUserControl.vb, attivate l’editor di codice su di esso e digitate quanto segue:

 

Imports System.Windows.Controls

Imports System.Windows.Media

 

Public Class HostUserControl

 

    Private Sub HostUserControl_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim ex As New Expander

 

        ex.Header = "Controllo WPF in Excel 2007"

        ex.Background = New SolidColorBrush(Colors.LightBlue)

        ex.BorderBrush = New SolidColorBrush(Colors.Black)

        ex.BorderThickness = New Windows.Thickness(2)

 

        Me.ElementHost1.Child = ex

    End Sub

End Class

 

Ora compilate la soluzione, affinchè la toolbox venga aggiornata con il nostro user control. Attivate il designer su uno qualsiasi dei fogli di lavoro della cartella di Excel 2007 e trascinate su di esso il controllo appena aggiunto alla toolbox. La seguente figura mostra il risultato ottenuto:

 

 

Come potete osservare, l’utilizzo di controlli WPF nelle soluzioni VSTO è un procedimento dalla logica piuttosto semplice, sebbene non si potrà sfruttare la potenza di XAML per gestire l’interfaccia dei controlli. Tuttavia, la scrittura del corrispondente codice managed vi consentirà di ottenere ugualmente risultati sorprendenti.

 

Alessandro

Print | posted on martedì 19 febbraio 2008 18:34 | Filed Under [ Windows Presentation Foundation Visual Studio Tools for Office ]

Powered by:
Powered By Subtext Powered By ASP.NET