使用WindowsformsHost将报表查看器插入WPF应用程序时出现问题

时间:2010-01-20 10:35:29

标签: wpf windows forms integration reportviewer

我正在尝试从我的WPF应用程序创建一个弹出窗口,该窗口显示在WindowsFormsHost中托管的报表查看器 但是我遇到以下Xaml的问题

<Page x:Class="FIS3.ReportViewer.ReportViewer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:my="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
Title="MapViewer">
<Grid>
    <my:WindowsFormsHost>

    </my:WindowsFormsHost>
    <Label Name="exampleText" Content="this is the Report Viewer ..." />
</Grid>

我收到构建错误通知我 “找不到类型'my:WindowsFormsHost'。确认您没有错过程序集引用,并且已经构建了所有引用的程序集”

我在XAML中犯了错误 我添加了WindowsFormsIntegration作为我项目的参考。

感谢您的帮助

中校

2 个答案:

答案 0 :(得分:3)

人们似乎忽略了第二个解决方案。我在这个问题上摸了好头20分钟。包括这个在内的任何解决方案都无法解决。事实证明我的解决方案是添加:

WindowsFormsIntegration程序

到我的参考资料

在我意识到基于:

之后

http://msdn.microsoft.com/en-us/library/system.windows.forms.integration.windowsformshost.aspx

这使用WindowsFormsIntegration.dll。我的参考文献似乎遗漏了这些内容。

希望这有帮助!

答案 1 :(得分:2)

根据MSDN documentation,WindowsFormsHost包含在默认的Xaml命名空间(“http://schemas.microsoft.com/winfx/2006/xaml/presentation”)中 - 尽管您确实需要引用WindowsFormsIntegration,就像您所做的那样。您是否尝试过引用没有名称空间前缀的WindowsFormsHost?

<Page x:Class="FIS3.ReportViewer.ReportViewer"
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 Title="MapViewer">
 <Grid>
   <WindowsFormsHost>

   <WindowsFormsHost>
  <Label Name="exampleText" Content="this is the Report Viewer ..." />
 </Grid>