用html做网站的步骤哈尔滨网站建设推广

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

用html做网站的步骤,哈尔滨网站建设推广,wordpress模板+保险,南宁哪个网络公司建网站好具体参考ArcMap中类似的问题#xff0c;本帖开发一个ArcGISPro版的工具 1.基础库部分 插件开发#xff0c;经常需要处理图层与界面的交互。基础库把常用的交互部分做了封装#xff0c;方便之后的重复使用。 #xff08;1#xff09;下述类定义了数据存储结构#xff0…具体参考ArcMap中类似的问题本帖开发一个ArcGISPro版的工具 1.基础库部分 插件开发经常需要处理图层与界面的交互。基础库把常用的交互部分做了封装方便之后的重复使用。 1下述类定义了数据存储结构主要用于保存Combox中的label与值。比如Name_Index类用于保存名称-数值索引Name_Layer类用于保存图层名-图层 using ArcGIS.Desktop.Mapping; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace GISCommonHelper {/// summary/// 名称与索引用于数据绑定时界面的显示,适用于字段名与索引图层名与索引等/// /summarypublic class Name_Index{public string name { get; set; }public int index { get; set; }public Name_Index(string name, int index){this.name name;this.index index;}}/// summary/// 字段名与假名/// /summarypublic class Name_AliasName{public string name { get; set; }public string alias_name { get; set; }public Name_AliasName(string name, string alias_name){this.name name;if (string.IsNullOrEmpty(this.alias_name)){this.alias_name alias_name;}else{this.alias_name name;}}}/// summary/// 图层名与图层/// /summarypublic class Name_Layer{public string Name { get; set; }public Layer layer { get; set; }public Guid id { get; set; }public Name_Layer(string name, Layer layer){this.Name name;this.layer layer;this.id Guid.NewGuid();}}public class name_obj{public string name { get; set; }public object obj { get; set; }public Guid id { get; set; }public string tp { get; set; }public name_obj() { }public name_obj(string name, object obj, string tp){this.name name;this.obj obj;this.tp tp;this.id Guid.NewGuid();}} }2下述代码实通过静态扩展的方式扩展WPF 中Combox组件新增方法  setLyrlistT通过数据绑定的形式设置Combox的Items集合通过提供一个Map对象以及泛型类型T setDftLyr通过lambda表达式的方式配置Combox默认的选中值。 通过该扩展类 Combox.SelectedValue 即可获取该下拉框的选中对象 using System; using System.Collections.Generic; using System.Linq; using System.Windows.Controls; using ArcGIS.Desktop.Mapping;namespace GISCommonHelper {public static class CartoLyrHelper{/// summary/// 设置图层/// /summary/// typeparam nameT/typeparam/// param namecmb/param/// param namemap/parampublic static void setLyrlistT(this ComboBox cmb,Map map) where T:Layer{var lyrlist map.GetLayersAsFlattenedList().OfTypeT().ToList();ListName_Layer nlist new ListName_Layer();lyrlist.ForEach(item {Layer l (Layer)item;nlist.Add(new Name_Layer(l.Name, l));});cmb.ItemsSource nlist;cmb.DisplayMemberPath Name;cmb.SelectedValuePath layer;}/// summary/// 设置下拉集合/// /summary/// typeparam nameT/typeparam/// param namecmb/param/// param namemap/param/// param nameclause/parampublic static void setLyrlistT(this ComboBox cmb,Map map,FuncLayer,bool clause) where T : Layer{cmb.setLyrlistT(map);cmb.setDftLyr(clause);}/// summary/// 设置默认选中的图层/// /summary/// param namecmb/param/// param nameclause/parampublic static void setDftLyr(this ComboBox cmb,FuncLayer,bool clause){ListName_Layer? lyrlist new ListName_Layer();if (cmb.ItemsSource null){return;}else{lyrlist cmb.ItemsSource as ListName_Layer;}for (int i 0; i lyrlist.Count; i){var item lyrlist[i].layer;if (clause(item)){cmb.SelectedIndex i;}}}}}2.界面部分 ProWindow controls:ProWindow x:ClassDayDreamInGISTool.AttrSpecialStrRemove.RemoveAttrSpecialStrFrmxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:controlsclr-namespace:ArcGIS.Desktop.Framework.Controls;assemblyArcGIS.Desktop.Frameworkxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:dhttp://schemas.microsoft.com/expression/blend/2008xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006xmlns:extensionsclr-namespace:ArcGIS.Desktop.Extensions;assemblyArcGIS.Desktop.Extensionsmc:Ignorabled ResizeModeNoResizeTitle移除属性中特殊字符 Height300 Width300WindowStartupLocationCenterOwner LoadedProWindow_Loadedcontrols:ProWindow.ResourcesResourceDictionaryResourceDictionary.MergedDictionariesextensions:DesignOnlyResourceDictionary Sourcepack://application:,,,/ArcGIS.Desktop.Framework;component\Themes\Default.xaml//ResourceDictionary.MergedDictionaries/ResourceDictionary/controls:ProWindow.ResourcesGrid NameRootGridLabel Content图层 HorizontalAlignmentLeft Margin12,8,0,0 VerticalAlignmentTop/ComboBox NamecmbLayer HorizontalAlignmentLeft Margin51,10,0,0 VerticalAlignmentTop Width229 SelectionChangedcmbLayer_SelectionChanged/GroupBox Header待移除特殊字符 HorizontalAlignmentLeft Margin12,41,0,0 VerticalAlignmentTop Height101 Width268 NameToBeRemovedGroupGrid Height90 Margin0,0,0.2,-0.4 VerticalAlignmentTopCheckBox NamechkEnter IsCheckedTrue Content换行符 \r\n HorizontalAlignmentLeft Margin10,10,0,0 VerticalAlignmentTop/CheckBox NamechkA Content响铃 \a IsCheckedTrue HorizontalAlignmentLeft Margin142,10,0,0 VerticalAlignmentTop RenderTransformOrigin-0.313,0.526/CheckBox NamechkF IsCheckedTrue Content换页 \f HorizontalAlignmentLeft Margin10,34,0,0 VerticalAlignmentTop/CheckBox NamechkT IsCheckedTrue Content水平制表 \t HorizontalAlignmentLeft Margin142,34,0,0 VerticalAlignmentTop/CheckBox NamechkV IsCheckedTrue Content垂直制表 \v HorizontalAlignmentLeft Margin142,58,0,0 VerticalAlignmentTop CheckedchkV_Checked/CheckBox NamechkStartEndSpace IsCheckedTrue Content首尾空格符 HorizontalAlignmentLeft Margin10,58,0,0 VerticalAlignmentTop//Grid/GroupBoxLabel Content替换为 HorizontalAlignmentLeft Margin12,151,0,0 VerticalAlignmentTop RenderTransformOrigin-0.155,0.477/TextBox HorizontalAlignmentLeft NametxtReplace Height23 Margin64,151,0,0 TextWrappingWrap Text、 VerticalAlignmentTop Width216/Button Content确定 IsDefaultTrue NamebtnOK HorizontalAlignmentLeft Margin49,220,0,0 VerticalAlignmentTop Width83 Height30 ClickbtnOK_Click/Button Content取消 IsCancelTrue NamebtnCancel HorizontalAlignmentLeft Margin174,220,0,0 VerticalAlignmentTop Width83 RenderTransformOrigin-0.557,1.094 Height30 ClickbtnCancel_Click/CheckBox Content处理TOC中所有图层 NamechkAll HorizontalAlignmentLeft Margin51,193,0,0 VerticalAlignmentTop//Grid /controls:ProWindow下述代码为界面逻辑主要实现交互获取通过属性的方式 using ArcGIS.Desktop.Mapping; using GISCommonHelper; 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 DayDreamInGISTool.AttrSpecialStrRemove {/// summary/// Interaction logic for RemoveAttrSpecialStrFrm.xaml/// /summarypublic partial class RemoveAttrSpecialStrFrm : ArcGIS.Desktop.Framework.Controls.ProWindow{private FeatureLayer ftlyr null;public FeatureLayer Ftlyr { get ftlyr; set ftlyr value; }public char[] SpecialCharArray { get specialCharArray; set specialCharArray value; }public bool IsAll { get isAll; set isAll value; }public bool IsTrim { get isTrim; set isTrim value; }public Listchar Special_char { get special_char; set special_char value; }public string Replace_str { get replace_str; set replace_str value; }private char[] specialCharArray;private bool isAll false;private bool isTrim;private Listchar special_char;private string replace_str;public RemoveAttrSpecialStrFrm(){InitializeComponent();special_char new Listchar();//获取所有图层var map MapView.Active.Map;this.cmbLayer.setLyrlistFeatureLayer(map);}private void cmbLayer_SelectionChanged(object sender, SelectionChangedEventArgs e){if (this.cmbLayer.SelectedIndex 0){this.ftlyr this.cmbLayer.SelectedValue as FeatureLayer;}}private void btnOK_Click(object sender, RoutedEventArgs e){replace_str txtReplace.Text;isAll chkAll.IsChecked.Value;if (chkA.IsChecked.Value){special_char.Add(\a);}if (chkEnter.IsChecked.Value){special_char.Add(\r);special_char.Add(\n);}if (chkF.IsChecked.Value){special_char.Add(\f);}if (chkT.IsChecked.Value){special_char.Add(\t);}if (chkV.IsChecked.Value){special_char.Add(\v);}isTrim chkStartEndSpace.IsChecked.Value;this.DialogResult true;}private void btnCancel_Click(object sender, RoutedEventArgs e){this.DialogResult false;}private void chkV_Checked(object sender, RoutedEventArgs e){}private void ProWindow_Loaded(object sender, RoutedEventArgs e){}} }3.逻辑代码 using ArcGIS.Core.CIM; using ArcGIS.Core.Data; using ArcGIS.Core.Geometry; using ArcGIS.Desktop.Catalog; using ArcGIS.Desktop.Core; using ArcGIS.Desktop.Editing; using ArcGIS.Desktop.Extensions; using ArcGIS.Desktop.Framework; using ArcGIS.Desktop.Framework.Contracts; using ArcGIS.Desktop.Framework.Dialogs; using ArcGIS.Desktop.Framework.Threading.Tasks; using ArcGIS.Desktop.Layouts; using ArcGIS.Desktop.Mapping; using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks;namespace DayDreamInGISTool.AttrSpecialStrRemove {internal class btnRemoveAttrSpecialStr : Button{private Listchar special_char_list;private string replacestr ;;private bool isTrim false;int cnt 0;RemoveAttrSpecialStrFrm rsf null;protected override void OnClick(){rsf new RemoveAttrSpecialStrFrm();if (rsf.ShowDialog().Value){cnt 0;special_char_list rsf.Special_char;replacestr rsf.Replace_str;isTrim rsf.IsTrim;if (rsf.IsAll){var map MapView.Active.Map;var lyrlist map.GetLayersAsFlattenedList().OfTypeFeatureLayer().ToList();lyrlist.ForEach(p {Execute_specialStr_Remove(p);});}else{Execute_specialStr_Remove(rsf.Ftlyr);}MessageBox.Show(处理完成);}}/// summary/// 遍历要素替换要素各字段中的特殊字符/// /summary/// param namepftlyr/param/// returns/returnsprivate async void Execute_specialStr_Remove(FeatureLayer pftlyr){var fields await QueuedTask.Run(() {return pftlyr.GetFieldDescriptions();});await QueuedTask.Run(() {using(Table table pftlyr.GetTable()){using(RowCursor rowCursor table.Search(null, false)){while(rowCursor.MoveNext()){using(Row row rowCursor.Current){System.Diagnostics.Debug.WriteLine(正在处理:row.GetObjectID());remove_feature_attr_specialStr(row,fields);}}}}});//return cnt;}/// summary/// 替换要素所有字段中的特殊字符/// /summary/// param namepFeature/paramprivate void remove_feature_attr_specialStr(Row row,ListFieldDescription fields){for (int i 0; i fields.Count; i){FieldDescription pfd fields[i];if (pfd.Type FieldType.String){//只处理字符类型的值string val row[pfd.Name].ToString();if(val! null){string val_r remove_specialStrInString(val);if (!string.Equals(val, val_r)){row[pfd.Name] val_r;row.Store();}}}}}/// summary/// 替换字符串中的特殊字符/// /summary/// param namestr/param/// returns/returnsprivate string remove_specialStrInString(string str){if (isTrim){str str.Trim();}special_char_list.ForEach(p {str str.Replace(p.ToString(), replacestr);});return str;}} }