当前位置: 首页 > news >正文

检察院加强网站建设青岛seo经理

检察院加强网站建设,青岛seo经理,上海电商摄影,logo图标素材网站ProWindow是ArcGIS Pro SDK中的一个WPF控件,具有以下特点: 可扩展性:ProWindow提供了丰富的API和样式,可以轻松地扩展和自定义ArcGIS Pro应用程序的UI。 可定制性:ProWindow支持多种UI控件和布局方式,可以…

ProWindow是ArcGIS Pro SDK中的一个WPF控件,具有以下特点:

  1. 可扩展性:ProWindow提供了丰富的API和样式,可以轻松地扩展和自定义ArcGIS Pro应用程序的UI。

  2. 可定制性:ProWindow支持多种UI控件和布局方式,可以创建符合自己需求的UI。

  3. 易用性:ProWindow是一个标准的WPF控件,使用起来非常简单。

总之,使用ProWindow可以轻松地为ArcGIS Pro应用程序添加自定义的用户界面元素,以增强应用程序的功能和易用性。

下面以一个小例子演示ProWindow窗口,Label、Button、Combobox等WPF控件的简单使用方法,同时复习一下图层、字段基本操作等内容。


一、要实现的功能

如上图所示,创建一个ProWindow示例窗口,通过下拉框选择要素图层,或通过按钮打开一个要素类,在第二个下拉框中列出该要素图层的所有字段名,再通过点击显示字段值按钮,在列表框中显示该字段的所有字段值。


二、Pro Window窗口的创建和UI设计

1、Pro Window窗口

在解决方案中右键点添加——新建项,选择:ArcGIS Pro ProWindow,如上图所示。

创建后的新窗口如下,左上是主窗口,是设计的主体。中间是属性栏,在这里可以手动编辑名称、标题、窗体大小、显示文字等属性。最右侧是工具箱窗口,包含默认的所有WPF控件,可以左键直接拖动到主窗口界面,直接创建控件,很方便。

从工具箱直接拖动2个Label控件、2个Button控件、2个ComboBox控件和1个ListBox控件,摆好位置,如下图:

摆控件的时候有一个技巧,就是锁定距离,可以控制和窗口边界或和其它控件的距离,这样窗口被拉伸的时候,也能保持位置,不至于发现形变。

2、Label控件

Label控件很简单,就是个标签,基本不会在它上面创建什么事件,只要注意标签文本内容和字体就行了。

3、Button控件

Button控件主要功能一般就是配一个点击事件,然后处理这个事件即可。如上面所示,在属性栏的事件窗口下,有很多可用的事件,这里用到了Click事件,可以手动输入事件名,再按下【Enter】键,就会在对应的cs文件中添加一个对应名的方法。当然,你直接双击主窗口的控件,也会自动生成并命名事件。

4、ComboBox控件

ComboBox控件是一个下拉框列表,主要的2个属性,【IsEditable】勾选后可以编辑,【Items】可以预先编辑好下拉框里的内容。

它的主要事件是【DropDownOpened】,即点击下拉框,展开列表时触发的事件。

5、Listbox控件

Listbox是1个列表框,主要用来以列表的方式展示内容。一般不涉及事件触发。


三、功能实现流程

之前自动创建的事件代码全部都在ProWindow1.xaml.cs中,通过事件名找到对应的代码块。

1、通过下拉框选择当前地图的要素图层

            //清除combox当前的列表内容combox_feature.Items.Clear();// 获取当前地图var map = MapView.Active.Map;// 获取地图中所有要素图层var list_layers = map.GetLayersAsFlattenedList().OfType<FeatureLayer>();foreach (var layer in list_layers){//将要素图层加入comboxcombox_feature.Items.Add(layer);}

通过点击下拉框按钮,将当前地图中所有的要素图层加入到下拉框列表中,即可选择你要的要素图层。

2、通过打开对话框选择要素类

            OpenItemDialog openDlg = new OpenItemDialog(){Title = "选择一个要素",      //打开对话框标题MultiSelect = false,          //是否可以多选Filter = ItemFilters.FeatureClasses_All,       //类型筛选};//打开对话框bool? ok = openDlg.ShowDialog();//如果没有选择内容,则返回if (!ok.HasValue || openDlg.Items.Count() == 0)return;//如果有选择内容,返回选择的内容var item = openDlg.Items.First();//将选择的内容置入comboxcombox_feature.Text = item.Path;

这是简单的打开对话框选择要素类,之前的系列文章已经写过了。

3、点击字段名列表combox_field控件时,列出所有字段名 

                        // 清空combox_fieldcombox_field.Items.Clear();await QueuedTask.Run(async () =>{// 获取所选图层的所有字段var fields = layer.GetFieldDescriptions();foreach (var field in fields){await QueuedTask.Run(() =>{// 在UI线程上执行添加item的操作Application.Current.Dispatcher.Invoke(() =>{// 将所有字段名添加到combox_field中combox_field.Items.Add(field.Name);});});}});

当事件触发时,通过layer.GetFieldDescriptions()方法获取所有字段,并添加到combox_field的Items里,这样下拉列表里就会列出所有的字段。

4、点击按钮,在列表框中显示所有字段值

                List<string> values = new List<string>();                // 打开要素图层的表格var table = initLayer.GetTable();// 定位到属性表的游标using (var tableCursor = table.Search(null, false)){while (tableCursor.MoveNext()){// 获取当前记录的值var row = tableCursor.Current;var currentValue = row[init_fieldname];// 将不重复的字段值加入listbox_fieldif (values.Contains(currentValue.ToString())){continue;}else{values.Add(currentValue.ToString());// 切换回 UI 线程上下文,将字段值添加到 ListBox 控件中Dispatcher.Invoke(() =>{listbox_field.Items.Add(currentValue.ToString());});}}}});

先创建一个空列表values,用来储存字段值。

通过GetTable()方法获取要素图层的属性表,再逐行搜索字段值,如果出现新的值,就存入values,并放到listbox_field的Items,即可显示在列表框里了。

以上只列出几个步骤的核心代码,完整的可以看文章末尾放出的工程文件。我是ArcGIS Pro SDK和C#的初学者,代码也仅仅是可运行,代码质量肯定是不好,特别是C#的多线程,差点没把我搞晕,大伙凑和着看吧。


四、工程文件分享

 最后,放上工程文件的链接:

WPFProWindowhttps://pan.baidu.com/s/1zvyF03K008lBrspHhZ3lRw?pwd=kzuw

PS:可以直接点击...bin\Debug\net6.0-windows\下的.esriAddinX文件直接安装。

http://www.ritt.cn/news/15210.html

相关文章:

  • 网站做的二维码失效了seo排名优化厂家
  • 能自己做二次元人物的网站免费优化
  • 福州网吧宁德seo
  • 国内服务器网站优化检测
  • 做网站到底要不要备案短视频平台推广
  • 如何创建一个公司网站郑州网络营销排名
  • 福州网站建设发布中国营销策划第一人
  • 如何在建设厅网站投诉百度联盟项目看广告挣钱
  • 福州做网站设计手机优化管家
  • vc 做网站源码关键词首页排名优化价格
  • 音响网站模板苏州网站优化排名推广
  • 如何做原创小说网站网站关键词有哪些
  • 贵阳网站建设企业网站seo运营
  • 如何给网站流量来源做标记通过在网址后边加问号?全国疫情最新名单
  • 网站怎么优化推广重庆自动seo
  • 艺术学院网站模板网络营销常用的方法有哪些
  • 新乡做网站哪家好店铺推广怎么做
  • 做爰全的网站网络营销培训机构
  • 用dw做的网站容易变形百度企业官网认证
  • 中国住房和建设委员会网站针对大学生推广引流
  • 做网站需要套模板免费的外贸b2b网站
  • 做教育网站有什么好处html网页制作案例
  • 的动态网站开发百度搜索指数在线查询
  • 做网站用jsp还是html我要发布信息
  • 免费做网站哪家好常州百度推广代理
  • 彩票网站什么做5188关键词挖掘工具
  • 滕州哪里有做网站的成品网站1688入口网页版怎样
  • 潍坊网站建设官网如何做网络推广
  • 哪里的郑州网站建设互联网营销师培训教材
  • 网站权重优化方式建站平台