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

C# 如何将Prism 7 WPF集成到旧的大型WinForms应用程序中,c#,wpf,winforms,prism,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

我正在尝试将(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应用程序并显示此窗口时,我收到以下错误消息:

。。。这解释了如何重写引导程序中的ConfigureRegionadapterAppings方法,但是当我创建一个从UnityBootTrapper继承的引导程序类时,它说这已经过时了。我知道应用程序应该继承PrismApplication,但这也适用于WinForms应用程序吗

任何关于如何处理这种情况的建议都将不胜感激

我知道应用程序应该继承PrismApplication,但这也适用于WinForms应用程序吗

Prism是一个WPF应用程序框架(以及UWP和Xamarin)。它不支持WinForms。也就是说,您可以单独使用Prism的各个部分,当然,即使没有任何GUI(例如,事件聚合器在windows服务中也可以正常工作)

您想从prism库中使用什么?基本上,对于每个功能,您必须查看引导程序如何初始化和配置它,然后根据您的应用程序调整初始化和配置

我知道应用程序应该继承PrismApplication,但这也适用于WinForms应用程序吗

Prism是一个WPF应用程序框架(以及UWP和Xamarin)。它不支持WinForms。也就是说,您可以单独使用Prism的各个部分,当然,即使没有任何GUI(例如,事件聚合器在windows服务中也可以正常工作)


您想从prism库中使用什么?基本上,对于每个功能,您都必须查看引导程序如何初始化和配置它,然后根据您的应用程序调整初始化和配置。

非常感谢您的回复!我已经能够显示一个基于WPF的窗口,它利用了Prism-framework,但具体地说,当我试图声明如上所示的RegionManager时,我得到了错误。我花了时间搜索,看看是否有一个将Prism的使用集成到WinForms应用程序中的“正确”方法的例子,但我没有找到。当做对于区域管理器,您必须为内容控件注册区域适配器。你应该在引导程序的某个地方找到注册信息。非常感谢你的回复!我已经能够显示一个基于WPF的窗口,它利用了Prism-framework,但具体地说,当我试图声明如上所示的RegionManager时,我得到了错误。我花了时间搜索,看看是否有一个将Prism的使用集成到WinForms应用程序中的“正确”方法的例子,但我没有找到。当做对于区域管理器,您必须为内容控件注册区域适配器。您应该在引导程序的某个地方找到该注册。