紅藍軍模擬對抗三維電子沙盤開發教程第十課
在SDK中自帶了一個自定義的基礎面板,該面板是基於Canvas完成有封裝,完成了多點觸摸支持, 鼠標單鍵拖動,滾輪放大,利用該基礎面板,二次開發就只用關心內容了:上代碼:
<m1:MCanvas
xmlns:m1="clr-namespace:GisLib;assembly=GisLib" x:Class="Teach3DGIS.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:m="clr-namespace:GisLib"
mc:Ignorable="d"
Height="262" Width="444">
</m1:MCanvas>
using GisLib;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Teach3DGIS
{
/// <summary>
/// UserControl1.xaml 的交互邏輯
/// </summary>
public partial class UserControl1 : MCanvas
{
public UserControl1()
{
InitializeComponent();
}
}
}
你在IDE中則可以看到如下界面:
這個時候你只需要關注在UI上承現什麼內容,多點觸摸操作,和鼠標拖動動作已經有支持了,調用方法如下:
UserControl1 ShowImage = new UserControl1();
Canvas.SetTop(ShowImage, 200);
Canvas.SetLeft(ShowImage, 300);
Canvas.SetZIndex(ShowImage, 30);
ShowImage.MShow(); //顯示動畫
在這個基礎上SDK內置了一些面板有:顯示圖片( GisLib.ShowImage),顯示視頻(GisLib.ShowVod),顯示全景圖片(GisLib.Show360Image),顯示全景視頻(GisLib.Q360Vod),顯示xps文檔(GisLib.ShowDocx)
調用代碼如下:
顯示圖片
GisLib.ShowImage ShowImage = new ShowImage(AppDomain.CurrentDomain.BaseDirectory + "背景.jpg");
Canvas.SetTop(ShowImage, 200);
Canvas.SetLeft(ShowImage, 300);
Canvas.SetZIndex(ShowImage, 30);
ShowImage.MShow(); //顯示動畫
顯示視頻
GisLib.ShowVod ShowImage = new ShowVod(AppDomain.CurrentDomain.BaseDirectory + "戰爭場景.wmv",new TimeSpan(0));
Canvas.SetTop(ShowImage, 200);
Canvas.SetLeft(ShowImage, 300);
Canvas.SetZIndex(ShowImage, 30);
ShowImage.MShow(); //顯示動畫
顯 示全景圖片面板:
GisLib.Show360Image ShowImage = new Show360Image(300,200);
ShowImage.InitPic(@"D:\MTOUCH GIS\data\成都市\全景\全景.jpg");
Canvas.SetTop(ShowImage, 200);
Canvas.SetLeft(ShowImage, 300);
Canvas.SetZIndex(ShowImage, 30);
ShowImage.MShow(); //顯示動畫
全景視頻:(可顯示720設置拍攝的視頻,如小米全景相機拍攝的)
GisLib.Q360Vod ShowImage = new GisLib.Q360Vod(320, 200);
ShowImage.InitPic (@"D:\MTOUCH GIS\data\成都市\全景\全景.jpg","全景視頻");
Canvas.SetTop(ShowImage, 200);
Canvas.SetLeft(ShowImage, 300);
Canvas.SetZIndex(ShowImage, 30);
ShowImage.MShow(); //顯示動畫
xps文檔顯示:
GisLib.ShowDocx ShowImage = new ShowDocx("1.xps");
Canvas.SetTop(ShowImage, 200);
Canvas.SetLeft(ShowImage, 300);
Canvas.SetZIndex(ShowImage, 30);
ShowImage.MShow(); //顯示動畫
由於WPF的特性。所以所有面板可支 持多人同時操作,可在一人操作地圖的同時,另一人也 可同時操作其它面板,互不影響。