Как использовать элементы управления FastReport .NET в WPF приложениях?

Question: Как использовать элементы управления FastReport .NET в WPF приложениях?

Answer:

Для этого следует использовать WindowsFormsHost :

0) Добавьте ссылку на FastReport.dll;

1) Добавьте аттрибут в тэг Window(Page): xmlns:fr="clr-namespace:FastReport.Preview;assembly=FastReport" если вы хотите использовать PreviewControl, xmlns:fr1="clr-namespace:FastReport.Design;assembly=FastReport" - если DesignerControl;

2) Добавьте тэг WindowsFormsHost в вашу XAML-разметку:

1
2
3
<WindowsFormsHost HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="0" Grid.ColumnSpan="3">
 
</WindowsFormsHost>

3) Добавьте дочерний тэг в WindowsFormsHost: <fr:PreviewControl></fr:PreviewControl> или <fr1:Designer></fr1:Designer>.

Полная разметка должна выглядеть следующим образом:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<Window
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
 x:Class="WpfApplication1.MainWindow"
 Title="MainWindow" Height="375.977" Width="939.258"
 xmlns:fr="clr-namespace:FastReport.Preview;assembly=FastReport">
 <Grid>
 <Grid.ColumnDefinitions>
 <ColumnDefinition Width="*"/>
 <ColumnDefinition Width="*"/>
 <ColumnDefinition Width="*"/>
 </Grid.ColumnDefinitions>
 <WindowsFormsHost HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="0" Grid.ColumnSpan="3">
 <fr:PreviewControl></fr:PreviewControl>
 </WindowsFormsHost>
 </Grid>
</Window>