Copyright © 2005-2010 MultiMedia Soft

Adding the component to a Visual Studio 2008 WPF project

Previous pageReturn to chapter overviewNext page

As you are probably aware XAML & C# codebehind for Windows Presentation Foundation (WPF) does not have a container form like Winforms applications, so the controls toolbox is not available. This means you cannot just drag the control onto a form and have Visual Studio automatically instantiate it.

The XAML code is what is used to generate the "form" and it is here that you need to instantiate our control:

 

Create a "WPF Application" project, named by default "WpfApplication1"
This will create two files a/ Window1.xaml & Window1.xaml.cs
On the Solution Explorer sidebar, right-click the "References" section, select the "Add reference" item from the context menu and, from the "Add Reference" window, manually add the following references to the project:
AudioDjStudio
System.Windows.Forms
WindowsFormsIntegration

 

adjstudnet_i000073

 

Modify the original XAML file with the following code (in red new added lines):

 

<Window x:Class="WpfApplication1.Window1"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:as="clr-namespace:AudioDjStudio;assembly=AudioDjStudio"

xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"

xmlns:wfi="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"

Title="Window1" Height="300" Width="300"

>

<Grid>

    <wfi:WindowsFormsHost Margin="1,0,-1,0">

        <as:AudioDjStudio x:Name="audioDjStudio1"/>

    </wfi:WindowsFormsHost>

</Grid>

</Window>

 

The XAML code above will instance the Audio DJ Studio component inside the WindowsFormsHost object
The Window1.xaml.cs file, which is the codebehind file, is the place where you can initialize the component when the WindowsFormsHost object is loaded:
In the small sample below, where the "Loaded" event of the WindowsFormsHost object has been handled, you can see the correct place to initialize the component and, just for testing, to display its about box:

 

namespace WpfApplication1

{

  /// <summary>

  /// Interaction logic for Window1.xaml

  /// </summary>

  public partial class Window1 : Window

  {

     public Window1()

     {

        InitializeComponent();

     }

   

     private void WindowsFormsHost_Loaded(object sender, RoutedEventArgs e)

     {

          audioDjStudio1.InitSoundSystem(2, 0, 0, 0, 0);

          audioDjStudio1.AboutBox();

     }

  }

}