WindowsFormsHost error IsRedirected is not found?

2019-02-25 02:45发布

问题:

I am adding a WINFORM chart to my WPF project using

 System.Windows.Forms.Integration.WindowsFormsHost

I am trying to work around the "airspace" rendering issue where the host is always rendered as the top most element the window. The workaround I am using sets

IsRedireced = "true"

When I insert this into my XMAL code:

        <Grid x:Name="ssCurveChartGrid" Grid.Column="1" Margin="110,30,160,306" Grid.ColumnSpan="4" RenderTransformOrigin="0.479,0.186">
        <WindowsFormsHost IsRedirected =" "true">

        </WindowsFormsHost>
    </Grid>

or my code behind:

System.Windows.Forms.Integration.WindowsFormsHost host =
            new System.Windows.Forms.Integration.WindowsFormsHost();

host.IsRedirected = "true";

I get the following error:

"The property 'IsRedirected' was not found in type 'WindowsFormsHost'

Here is a screenshot:

error http://i57.tinypic.com/2eal2k7.jpg

Can anyone help explain why this is happening? I relay need to display an element on top of my WINFORM chart!

Thanks

EDIT:

Code was taken from MSDN site: http://msdn.microsoft.com/en-us/library/ms752027.aspx

From MSDN: "By default, visible WindowsFormsHost elements are always drawn on top of other WPF elements, and they are unaffected by z-order. To enable z-ordering, set the IsRedirected property of the WindowsFormsHost to true and the CompositionMode property to Full or OutputOnly. To see the default z-order behavior"

" Copy the following XAML into the Grid element."

<!-- Z-order demonstration. -->
<Canvas Grid.Row="1" Grid.Column="1">
  <WindowsFormsHost Canvas.Top="20" Canvas.Left="20" Background="Yellow">
    <wf:Button Text="Windows Forms control" FlatStyle="Flat"/>
  </WindowsFormsHost>
  <Label Content="A WPF label" FontSize="24"/>
</Canvas>

Press F5 to build and run the application. The WindowsFormsHost element is painted over the label element.

"To see the z-order behavior when IsRedirected is true"

Replace the previous z-order example with the following XAML.
XAML

<!-- Z-order demonstration. -->
<Canvas Grid.Row="1" Grid.Column="1">
  <WindowsFormsHost IsRedirected="True" CompositionMode="Full" Canvas.Top="20" Canvas.Left="20" Background="Yellow">
    <wf:Button Text="Windows Forms control" FlatStyle="Flat"/>
  </WindowsFormsHost>
  <Label Content="A WPF label" FontSize="24"/>
</Canvas>

Press F5 to build and run the application. The label element is painted over the WindowsFormsHost element.

回答1:

Microsoft .NET Framework 4.5 Beta Readme

1.3.10 Windows Presentation Foundation (WPF)

1.3.10.1 HwndHost feature has been removed from WPF in the .NET Framework 4.5 Beta

The .NET Framework 4.5 Developer Preview included a WPF HwndHost redirection feature. However, this feature had several known issues and has been removed from the .NET Framework 4.5 Beta. It will not be included in any future releases.

To resolve this issue:

No workaround is available.

(emphasis added)



回答2:

Which .Net Framework are you using here. IsRedirected for WindowsFormHost is released with Framework 4.5