如何将Prism 7 WPF集成到旧的大型WinForms应用中

时间:2019-03-18 20:05:02

标签: c# wpf winforms prism

我正在尝试将(Prism 7)WPF窗口集成到现有WinForms应用程序中。

我的窗口定义为:

<Window x:Class="ESC.SV.UI.RAndDClient.Views.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:ESC.SV.UI.RAndDClient"
    xmlns:core="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:prism="http://www.codeplex.com/prism"
    xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
    prism:ViewModelLocator.AutoWireViewModel="True"
    mc:Ignorable="d"
    Title="{Binding Title}" Height="450" Width="800">
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <dxb:BarContainerControl Grid.Row="0">
        <dxb:ToolBarControl Caption="Main Toolbar"  BarItemHorizontalIndent="10">
            <dxb:BarButtonItem Content="View 1" Glyph="{dx:DXImage Image=Forward_16x16.png}" Command="{Binding ExecuteView1Command}"/>
            <dxb:BarButtonItem Content="View 2" Glyph="{dx:DXImage Image=Backward_16x16.png}" Command="{Binding ExecuteView2Command}"/>
        </dxb:ToolBarControl>
    </dxb:BarContainerControl>

    <ContentControl prism:RegionManager.RegionName="ViewsRegion" Grid.Row="1" VerticalAlignment="Top"/>

</Grid>

启动WinForms应用程序并显示此窗口时,出现以下错误消息:

Views Region Error Message

...这说明了在引导程序中覆盖ConfigureRegionAdapterMappings方法,但是当我创建一个继承自UnityBootstrapper的BootStrapper类时,它说这已经过时了。我知道App应该继承自PrismApplication,但这是否也适用于WinForms应用程序?

非常感谢您提供有关如何处理这种情况的建议。

1 个答案:

答案 0 :(得分:0)

  

我知道App应该继承自PrismApplication,但这是否也适用于WinForms应用程序?

Prism是WPF应用程序框架(以及UWP和Xamarin)。它不支持WinForms。话虽如此,您甚至可以在没有任何GUI的情况下单独使用Prism的各个部分(例如,事件聚合器在Windows服务中可以正常工作)。

您想在棱镜库中使用什么?基本上,对于每个功能,您都必须查看引导程序如何对其进行初始化和配置,然后使该初始化和配置适应您的应用程序。