У меня есть элемент управления 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>