三维数字地球开发教程第四课 利用WPF建立3d gis数字地球(非axhost方式)

本文主要是介绍三维数字地球开发教程第四课 利用WPF建立3d gis数字地球(非axhost方式),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

三维数字地球开发教程第四课 利用WPF建立3d gis数字地球(非axhost方式)

(四)在地图上添加FrameworkElement

下面介绍怎样在地球上增加自己的FrameworkElement,因为FrameworkElement为WPF的基础UI对象,基本上所有的UI对象都是继承它出来的,废话少说,上代码:

Button Y1 = new Button();Y1.Width = 100;Y1.Height = 100;Y1.Background = new SolidColorBrush(Colors.Red); //自己的UI对象NewGisBiao.M3D.UserGisUI3dObject2 JuLiSechBiao = new NewGisBiao.M3D.UserGisUI3dObject2(); //新建一个承载UI对象的东东JuLiSechBiao.PareantEarth = (NewGisBiao.Base.GISInterfaseForBiao)IniRead.IniReadWrite.MPareant;//设置它的GIS球对象JuLiSechBiao.Manage = IniRead.IniReadWrite.BiaoManage;//设置它的标号管理器JuLiSechBiao.MaxZoom = 9;//最大显示层,当小于9层的时候不显示JuLiSechBiao.MUIValue = Y1;//UI对象JuLiSechBiao.DHi = 0.01;//相对于地形的高度JuLiSechBiao.ZScal = 0.5;//相对缩放JuLiSechBiao.Scal.ScaleX = 1; //固定东东JuLiSechBiao.Scal.ScaleY = 1;JuLiSechBiao.Scal.ScaleZ = 1;JuLiSechBiao.AutoScal = true;//是否自动缩放,不管在哪一层都是一样大JuLiSechBiao.AutoAngle = true;//是否自动角度,使终对着摄像机JuLiSechBiao.CenterType = JunBiao.CenteType.左下角;//中心点类型IniRead.IniReadWrite.BiaoManage.AddJunBiao(JuLiSechBiao);//增加到军标管理对象中。也可以不加JuLiSechBiao.MWidth = 250;//三维面片的大小JuLiSechBiao.MHeight = 150;JuLiSechBiao.MRX = 90;if (IniRead.IniReadWrite.MPareant is MTGIS3D) //手动刷新一下自动角度。。。bug{((MTGIS3D)IniRead.IniReadWrite.MPareant).TextAxisAngleX.Angle += 0.001;((MTGIS3D)IniRead.IniReadWrite.MPareant).TextAxisAngleX.Angle -= 0.001;}JuLiSechBiao.Center = new Point(103, 30);//设置中心点JuLiSechBiao.ISShow = true;//显示//JuLiSechBiao.ISDelete = true;//这个不用说了啥

效果如下图:

这里充分利用了WPF的特性。所以这个UI的一切鼠标,触摸事件也是可以正常响应的。意思就是可以做视频播放,或者录入信息的界面什么都可以(强大的WPF)

 

这篇关于三维数字地球开发教程第四课 利用WPF建立3d gis数字地球(非axhost方式)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/810098

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

Java Scanner类解析与实战教程

《JavaScanner类解析与实战教程》JavaScanner类(java.util包)是文本输入解析工具,支持基本类型和字符串读取,基于Readable接口与正则分隔符实现,适用于控制台、文件输... 目录一、核心设计与工作原理1.底层依赖2.解析机制A.核心逻辑基于分隔符(delimiter)和模式匹

Spring创建Bean的八种主要方式详解

《Spring创建Bean的八种主要方式详解》Spring(尤其是SpringBoot)提供了多种方式来让容器创建和管理Bean,@Component、@Configuration+@Bean、@En... 目录引言一、Spring 创建 Bean 的 8 种主要方式1. @Component 及其衍生注解

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py