Как интегрировать Prism 7 WPF в старое большое приложение WinForms - PullRequest
1 голос
/ 18 марта 2019

Я пытаюсь интегрировать (Prism 7) WPF Window в существующее приложение 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 в загрузчике, но когда я собираюсь создать класс BootStrapper, который наследуется от UnityBootstrapper, он говорит, что теперь он устарел. Я знаю, что приложение должно наследоваться от PrismApplication, но относится ли это и к приложению WinForms?

Любой совет о том, как справиться с этой ситуацией, очень приветствуется.

1 Ответ

0 голосов
/ 19 марта 2019

Я знаю, что приложение должно наследоваться от PrismApplication, но относится ли это и к приложению WinForms?

Prism - это инфраструктура приложений WPF (и UWP, и Xamarin),Он не поддерживает WinForms.При этом вы можете использовать отдельные части Prism по отдельности, конечно, даже без какого-либо графического интерфейса (например, агрегатор событий будет нормально работать в службе Windows).

Что вы хотите использовать избиблиотека призмы?По сути, для каждой функции вам нужно посмотреть, что делает загрузчик, чтобы инициализировать и настроить его, а затем адаптировать эту инициализацию и конфигурацию к вашему приложению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...