欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

如何将Skyline66嵌入WPF中

程序员文章站 2023-01-19 08:25:16
1.新建WPF项目; 2.添加引用 .net引用:System.Windows.Forms和WindowsFormsIntegration skyline引用:AxInterop.TerraExplorerX和TerraExplorerX 3.代码如下: /// /// Main ......

1.新建WPF项目;

2.添加引用

.net引用:System.Windows.Forms和WindowsFormsIntegration

skyline引用:AxInterop.TerraExplorerX和TerraExplorerX

3.代码如下:

/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
private SGWorld66 sgWorld = null;
public MainWindow()
{
InitializeComponent();

WindowsFormsHost host = new WindowsFormsHost();
AxTerraExplorerX.AxTE3DWindow axTE3DWindow1 = new AxTerraExplorerX.AxTE3DWindow();
host.Child = axTE3DWindow1;
this.globeWindow.Children.Add(host);

this.globeWindow.Loaded += GlobeWindow_Loaded;
}

private void GlobeWindow_Loaded(object sender, RoutedEventArgs e)
{
this.OpenProject();
}

private void OpenProject()
{
string tMsg = String.Empty;
// A. Set Project "Open" Method parameters
string tProjectUrl = @"D:\软件开发\Skyline\使用的Fly\Default.fly";

bool bIsAsync = false;
string tUser = String.Empty;
string tPassword = String.Empty;
// B. Instantiate Terra Explorer Globe and retrieve Project Interface

try
{
sgWorld = new SGWorld66();
// D. Open Project in synchronous mode
sgWorld.Project.Open(tProjectUrl, bIsAsync, tUser, tPassword);
}
catch (Exception ex)
{
tMsg = String.Format("OpenProjectButton_Click Exception: {0}", ex.Message);
MessageBox.Show(tMsg);
}
}

}