|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
Announcements
Want a new Job?
Chapters
Services
Feature Zones
|
IntroductionThe Visual Studio 2008 Tools for Office System allow to drag and drop Windows Forms controls onto Office documents’ surface to create an advanced user experience. It is also possible to use WPF controls, but this technique requires some more steps, because Office applications cannot directly host WPF controls. So we must use interoperability between the two technologies. In this article, I will show you how to create a custom Windows Forms control to host WPF controls which can be dragged onto Office 2007 documents’ surface. BackgroundYou should be quite skillful with WPF controls and .NET user controls before you read this article. Using the CodeOpen Visual Studio 2008 and create a new Visual Basic 2008 document-level solution for Microsoft Excel 2007. The first step is to add to the solution a new custom Windows Forms control. After you added one, rename it as HostUserControl.vb. Then, from the WPF Interoperability tab in Visual Studio 2008 toolbox, drag an Once you've done this, add a reference to the following WPF assemblies:
At this point, we can go to implement a WPF control writing managed code (in this case we cannot obviously accomplish this by XAML). For example, we could add to our User Control an 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 = " WPF control 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
Now compile the solution, so that the toolbox gets updated with the new user control. Switch to design mode and drag the new Once you have designed your control, you can write code to handle its events in the same way you use to do with other controls. Points of InterestAs you can see, using WPF controls in VSTO solutions is a substantially simple procedure, even if it's not possible to use XAML to manage controls UI. Anyway, you will obtain amazing results also by writing managed code. History
|
|||||||||||||||||||||||||||||||||||