dotnetmonitor.com |
|
|||||||||||
| First make sure to add references to
System.Windows.Forms and System.Windows.Forms.Integration. Then you need to
decide if you will use code, XAML or a combination of both to work with the
Windows Forms controls. If you are strictly using code, you would write code
similar to the following:
//Instantiate the hosting control WindowsFormsHost host = new WindowsFormsHost();
//Instantiate the Windows Forms control, in this case a button System.Windows.Forms.Button wfButton = new System.Windows.Forms.Button(); wfButton.Text = "Windows Forms Button";
// Add the Windows Forms button to the host control host.Children.Add(wfButton);
// Add the host control to the WPF element that you want to parent the control, // in this case it's a Grid this.grid1.Children.Add(host);
If you are using XAML, you still need to add the references to System.Windows.Forms and System.Windows.Forms.Integration, but you will also need to add mapping statements to your XAML that will allow you to refer to the objects that live in these namespaces via XAML:
<?Mapping XmlNamespace="wfi" ClrNamespace="System.Windows.Forms.Integration" Assembly="WindowsFormsIntegration"?> <?Mapping XmlNamespace="wf" ClrNamespace="System.Windows.Forms" Assembly="System.Windows.Forms"?>
The XmlNamespace property provide you a way to create a tag that you can use as namespace prefix in the XAML to refer to the controls within the System.Windows.Forms and System.Windows.Forms.Integration namespaces. To enable this, you must also create xmlns properties in the XAML that map back to these prefixes:
<Window x:Class="AvalonApplication17.Window1" xmlns="http://schemas.microsoft.com/winfx/avalon/2005" xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005" xmlns:wfi="wfi" xmlns:wf="wf" Title="AvalonApplication17" Loaded="WindowLoaded" >
Then you can use XAML to instantiate the WindowsFormsHost control and its subsequent child controls:
<Grid x:Name="grid1"> <wfi:WindowsFormsHost> <wf:Button Text="Windows Forms Button"/> </wfi:WindowsFormsHost> </Grid> |
|||||||||||