|
|
Questions and answers for Interoperability Windows Forms and WPF.
|
49. Interoperability Windows Forms and WPF
|
| 49.1
Will you provide a tool to convert Windows Forms applications to WPF
applications ?
|
| 49.2
What about user controls and third-party controls including ActiveX controls?
|
| 49.3
Where do I find System.Windows.Forms.Integration ?
|
| 49.4
Can I use a WindowsFormsHost element to host a System.Windows.Forms ?
|
49.1 Will you provide a tool to convert Windows Forms applications to WPF
applications ?
|
|
At this time, we do not have any plans to release such a tool. We feel that it
is more important for us to offer a solution that allows for co-existence of
Windows Forms and WPF controls rather than attempt a migration tool that would
be difficult to get right.
|
49.2 What about user controls and third-party controls including ActiveX
controls?
|
|
Windows Forms user controls will work the same as the standard Windows Forms
controls, which means you can certainly use them in WPF applications. As far as
third-party controls go, it depends on how these controls are built. If they
are built as managed Windows Forms custom controls, they will also work fine in
this scenario. If they are built as ActiveX controls, they can also be used in
a WPF application as long as they are contained within a WindowsFormsHost
control. Since Windows Forms already has support for hosting ActiveX controls,
all you need to do is generate the managed wrappers for the ActiveX control and
then use those wrappers to instantiate the control and host it within the
WindowsFormsHost control on a WPF window or page. One handy way to do this is
to simply create a Windows Forms UserControl that contains the ActiveX control
and then simply host the UserControl in the WindowsFormsHost control.
|
49.3 Where do I find System.Windows.Forms.Integration ?
|
|
The System.Windows.Forms.Integration namespace is defined in
"WindowsFormsIntegration.dll" which currently ships in the WinFX SDK, not in
the standard redist. Therefore, the file will be found in "\Program
Files\Reference Assemblies\Microsoft\Framework\v3.0".
|
49.4 Can I use a WindowsFormsHost element to host a System.Windows.Forms ?
|
|
It can be done with the following code :
|
[XAML]
<Window
x:Class="HostingWfInWpf.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
Title="HostingWfInWpf"
>
<Grid>
<WindowsFormsHost>
<wf:MaskedTextBox
x:Name="mtbDate" Mask="00/00/0000"/>
</WindowsFormsHost>
</Grid>
</Window>
|
|