Элемент управления ActiveX (XMetal XMax) в AvalonDock генерирует сообщение об ошибке - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть элемент управления ActiveX, который представляет собой редактор XML (XMetal XMax).Я включил это как компонент COM (WindowsFormsHost) в мой проект WPF.Модель содержимого редактора, такая как схема XML, CSS, элементы XML, атрибуты XML и т. Д., Предварительно конфигурируется утилитой XMetal Developer и назначается редактору XML в реализации WPF как один файл с суффиксом ".xac ".

Шаг 1 - Работает: Когда я добавляю XML-редактор в сетку (this.grid1.Children.Add (host)), все отлично работает.Отобразится редактор XML и все содержимое XML.

Теперь я пошел еще дальше и включил XCeed AvalonDock в качестве основы компоновки.

Шаг 2 - Не работает: предварительные условия одинаковыкак в шаге 1. Если я назначаю редактор XML для свойства «x: Name» в «xcad: LayoutDocument», я получаю сообщение об ошибке.Хотя символ редактора XML отображается в «xcad: LayoutDocument», файл .xac базовой конфигурации XML не будет загружен.Появляется сообщение об ошибке.

Как я уже говорил, при назначении Grid.Row все работает нормально.Я много пробовал, но, к сожалению, безуспешно.Может кто-нибудь помочь мне, пожалуйста.Большое спасибо.

public partial class MainWindow : Window
{
    public AxXMetaLControlLib.AxXMetaLControl axXmax;
    System.Windows.Forms.Integration.WindowsFormsHost host;

    public MainWindow()
    {
        InitializeComponent();
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        // Create the interop host control.
        host = new System.Windows.Forms.Integration.WindowsFormsHost();

        // Create the ActiveX control.
        axXmax = new AxXMetaLControlLib.AxXMetaLControl();

        // Assign the ActiveX control as the host control's child.
        host.Child = axXmax;

        // Add the interop host control to the Grid
        // control's collection of child controls.
        this.XMaxControl.Content = host;
        //this.grid1.Children.Add(host);

        // Load an XML File into XMAX
        axXmax.LoadFromFile("C:/Users/Administrator/Desktop/VS_XMax_PiMod/XMax_PiMod_01/instance1.xml", "C:/001_Mein/001_CMS_Projekt/01_Mein_Projekt/01_Finale/wCMS_02/XMax_Dateien/pi-mod.xac", XMetaLControlLib.SQDocViewType.sqViewTagsOn);

    }
}


<Grid x:Name="grid1">
    <StackPanel>
        <xcad:DockingManager>
            <xcad:LayoutRoot>
                <xcad:LayoutPanel Orientation="Vertical">
                    <xcad:LayoutPanel Orientation="Horizontal"
                      DockHeight="*">
                        <xcad:LayoutAnchorablePaneGroup DockWidth="150"
                                        Orientation="Vertical">
                            <xcad:LayoutAnchorablePane DockHeight="100">
                                <xcad:LayoutAnchorable x:Name="myXmax" Title="Tool 1">

                                </xcad:LayoutAnchorable>
                            </xcad:LayoutAnchorablePane>
                            <xcad:LayoutAnchorablePane DockHeight="70">
                                <xcad:LayoutAnchorable Title="Tool 2">
                                    <TextBox />
                                </xcad:LayoutAnchorable>
                            </xcad:LayoutAnchorablePane>
                        </xcad:LayoutAnchorablePaneGroup>
                        <xcad:LayoutDocumentPaneGroup>
                            <xcad:LayoutDocumentPane>
                                <xcad:LayoutDocument x:Name="XMaxControl" Title="Doc1">

                                </xcad:LayoutDocument>
                                <xcad:LayoutDocument Title="Doc2">
                                    <TextBox />
                                </xcad:LayoutDocument>
                            </xcad:LayoutDocumentPane>
                        </xcad:LayoutDocumentPaneGroup>
                        <xcad:LayoutAnchorablePaneGroup DockWidth="250"
                                        Orientation="Vertical">
                            <xcad:LayoutAnchorablePane>
                                <xcad:LayoutAnchorable Title="Attribute Manager">
                                    <xctk:PropertyGrid x:Name="propertyGrid" SelectedObject="{Binding}" >

                                    </xctk:PropertyGrid>
                                </xcad:LayoutAnchorable>
                            </xcad:LayoutAnchorablePane>
                        </xcad:LayoutAnchorablePaneGroup>
                    </xcad:LayoutPanel>
                    <xcad:LayoutAnchorablePaneGroup DockHeight="150">
                        <xcad:LayoutAnchorablePane>
                            <xcad:LayoutAnchorable x:Name="prop" Title="Tool 4">

                            </xcad:LayoutAnchorable>
                        </xcad:LayoutAnchorablePane>
                    </xcad:LayoutAnchorablePaneGroup>
                </xcad:LayoutPanel>
            </xcad:LayoutRoot>
        </xcad:DockingManager>
    </StackPanel>
</Grid>
...