中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

哪個(gè)網(wǎng)站是做包裝材料珍珠棉包管seo推廣一個(gè)月見效

哪個(gè)網(wǎng)站是做包裝材料珍珠棉包管,seo推廣一個(gè)月見效,浙江政府網(wǎng)站大建設(shè),濟(jì)南網(wǎng)絡(luò)平臺(tái)設(shè)計(jì)具體參考ArcMap中類似的問題,本帖開發(fā)一個(gè)ArcGISPro版的工具 1.基礎(chǔ)庫(kù)部分 插件開發(fā),經(jīng)常需要處理圖層與界面的交互?;A(chǔ)庫(kù)把常用的交互部分做了封裝,方便之后的重復(fù)使用。 (1)下述類定義了數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)&#xff0…

具體參考ArcMap中類似的問題,本帖開發(fā)一個(gè)ArcGISPro版的工具

1.基礎(chǔ)庫(kù)部分

插件開發(fā),經(jīng)常需要處理圖層與界面的交互。基礎(chǔ)庫(kù)把常用的交互部分做了封裝,方便之后的重復(fù)使用。

(1)下述類定義了數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),主要用于保存Combox中的label與值。比如,Name_Index類,用于保存名稱-數(shù)值索引,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>/// 名稱與索引,用于數(shù)據(jù)綁定時(shí)界面的顯示,適用于字段名與索引,圖層名與索引等/// </summary>public 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>/// 字段名與假名/// </summary>public 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>/// 圖層名與圖層/// </summary>public 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)下述代碼實(shí)通過靜態(tài)擴(kuò)展的方式,擴(kuò)展WPF 中Combox組件,新增方法?

setLyrlist<T>,通過數(shù)據(jù)綁定的形式設(shè)置Combox的Items集合,通過提供一個(gè)Map對(duì)象,以及泛型類型T

setDftLyr,通過lambda表達(dá)式的方式,配置Combox默認(rèn)的選中值。

通過該擴(kuò)展類, Combox.SelectedValue 即可獲取該下拉框的選中對(duì)象

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Controls;
using ArcGIS.Desktop.Mapping;namespace GISCommonHelper
{public static class CartoLyrHelper{/// <summary>/// 設(shè)置圖層/// </summary>/// <typeparam name="T"></typeparam>/// <param name="cmb"></param>/// <param name="map"></param>public static void setLyrlist<T>(this ComboBox cmb,Map map) where T:Layer{var lyrlist = map.GetLayersAsFlattenedList().OfType<T>().ToList();List<Name_Layer> nlist = new List<Name_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>/// 設(shè)置下拉集合/// </summary>/// <typeparam name="T"></typeparam>/// <param name="cmb"></param>/// <param name="map"></param>/// <param name="clause"></param>public static void setLyrlist<T>(this ComboBox cmb,Map map,Func<Layer,bool> clause) where T : Layer{cmb.setLyrlist<T>(map);cmb.setDftLyr(clause);}/// <summary>/// 設(shè)置默認(rèn)選中的圖層/// </summary>/// <param name="cmb"></param>/// <param name="clause"></param>public static void setDftLyr(this ComboBox cmb,Func<Layer,bool> clause){List<Name_Layer>? lyrlist = new List<Name_Layer>();if (cmb.ItemsSource == null){return;}else{lyrlist = cmb.ItemsSource as List<Name_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:Class="DayDreamInGISTool.AttrSpecialStrRemove.RemoveAttrSpecialStrFrm"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:controls="clr-namespace:ArcGIS.Desktop.Framework.Controls;assembly=ArcGIS.Desktop.Framework"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:extensions="clr-namespace:ArcGIS.Desktop.Extensions;assembly=ArcGIS.Desktop.Extensions"mc:Ignorable="d" ResizeMode="NoResize"Title="移除屬性中特殊字符" Height="300" Width="300"WindowStartupLocation="CenterOwner" Loaded="ProWindow_Loaded"><controls:ProWindow.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><extensions:DesignOnlyResourceDictionary Source="pack://application:,,,/ArcGIS.Desktop.Framework;component\Themes\Default.xaml"/></ResourceDictionary.MergedDictionaries></ResourceDictionary></controls:ProWindow.Resources><Grid Name="RootGrid"><Label Content="圖層" HorizontalAlignment="Left" Margin="12,8,0,0" VerticalAlignment="Top"/><ComboBox Name="cmbLayer" HorizontalAlignment="Left" Margin="51,10,0,0" VerticalAlignment="Top" Width="229" SelectionChanged="cmbLayer_SelectionChanged"/><GroupBox Header="待移除特殊字符" HorizontalAlignment="Left" Margin="12,41,0,0" VerticalAlignment="Top" Height="101" Width="268" Name="ToBeRemovedGroup"><Grid Height="90" Margin="0,0,0.2,-0.4" VerticalAlignment="Top"><CheckBox Name="chkEnter" IsChecked="True"  Content="換行符 \r\n" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top"/><CheckBox Name="chkA" Content="響鈴 \a" IsChecked="True" HorizontalAlignment="Left" Margin="142,10,0,0" VerticalAlignment="Top" RenderTransformOrigin="-0.313,0.526"/><CheckBox Name="chkF" IsChecked="True"  Content="換頁(yè) \f" HorizontalAlignment="Left" Margin="10,34,0,0" VerticalAlignment="Top"/><CheckBox Name="chkT" IsChecked="True"  Content="水平制表 \t" HorizontalAlignment="Left" Margin="142,34,0,0" VerticalAlignment="Top"/><CheckBox Name="chkV" IsChecked="True"  Content="垂直制表 \v" HorizontalAlignment="Left" Margin="142,58,0,0" VerticalAlignment="Top" Checked="chkV_Checked"/><CheckBox Name="chkStartEndSpace" IsChecked="True" Content="首尾空格符" HorizontalAlignment="Left" Margin="10,58,0,0" VerticalAlignment="Top"/></Grid></GroupBox><Label Content="替換為" HorizontalAlignment="Left" Margin="12,151,0,0" VerticalAlignment="Top" RenderTransformOrigin="-0.155,0.477"/><TextBox HorizontalAlignment="Left" Name="txtReplace" Height="23" Margin="64,151,0,0" TextWrapping="Wrap" Text="、" VerticalAlignment="Top" Width="216"/><Button Content="確定" IsDefault="True" Name="btnOK" HorizontalAlignment="Left" Margin="49,220,0,0" VerticalAlignment="Top" Width="83" Height="30" Click="btnOK_Click"/><Button Content="取消" IsCancel="True" Name="btnCancel" HorizontalAlignment="Left" Margin="174,220,0,0" VerticalAlignment="Top" Width="83" RenderTransformOrigin="-0.557,1.094" Height="30" Click="btnCancel_Click"/><CheckBox Content="處理TOC中所有圖層" Name="chkAll" HorizontalAlignment="Left" Margin="51,193,0,0" VerticalAlignment="Top"/></Grid>
</controls:ProWindow>

下述代碼為界面邏輯,主要實(shí)現(xiàn)交互獲取,通過屬性的方式

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/// </summary>public 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 List<char> 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 List<char> special_char;private string replace_str;public RemoveAttrSpecialStrFrm(){InitializeComponent();special_char = new List<char>();//獲取所有圖層var map = MapView.Active.Map;this.cmbLayer.setLyrlist<FeatureLayer>(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 List<char> 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().OfType<FeatureLayer>().ToList();lyrlist.ForEach(p =>{Execute_specialStr_Remove(p);});}else{Execute_specialStr_Remove(rsf.Ftlyr);}MessageBox.Show("處理完成");}}/// <summary>/// 遍歷要素,替換要素各字段中的特殊字符/// </summary>/// <param name="pftlyr"></param>/// <returns></returns>private 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 name="pFeature"></param>private void remove_feature_attr_specialStr(Row row,List<FieldDescription> 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 name="str"></param>/// <returns></returns>private string remove_specialStrInString(string str){if (isTrim){str = str.Trim();}special_char_list.ForEach(p =>{str = str.Replace(p.ToString(), replacestr);});return str;}}
}

http://www.risenshineclean.com/news/6736.html

相關(guān)文章:

  • 公司網(wǎng)站不續(xù)費(fèi)能打開網(wǎng)頁(yè)嗎seo研究所
  • 對(duì)手網(wǎng)站分析如何修改百度上面的門店號(hào)碼
  • 后海做網(wǎng)站公司湖南百度推廣代理商
  • 福州外文網(wǎng)站建設(shè)seo網(wǎng)站優(yōu)化知識(shí)
  • 沈陽(yáng)房地產(chǎn)網(wǎng)站開發(fā)西點(diǎn)培訓(xùn)班一般要多少學(xué)費(fèi)
  • 東莞市建設(shè)局網(wǎng)站首頁(yè)營(yíng)銷策略怎么寫
  • 做京東網(wǎng)站需要哪些手續(xù)重慶網(wǎng)站建設(shè)公司
  • 二維碼轉(zhuǎn)短鏈接生成器做排名優(yōu)化
  • 河南專業(yè)網(wǎng)站建設(shè)公司哪家好學(xué)好seo
  • oracle 網(wǎng)站開發(fā)推廣引流app
  • 網(wǎng)站建設(shè)原理與實(shí)踐推廣普通話手抄報(bào)文字內(nèi)容
  • 建動(dòng)畫網(wǎng)站需要多少錢關(guān)鍵詞排名查詢工具免費(fèi)
  • 域名服務(wù)商怎么查詢網(wǎng)絡(luò)優(yōu)化推廣公司哪家好
  • 贛州人才網(wǎng)官方網(wǎng)站合肥網(wǎng)站優(yōu)化平臺(tái)
  • 網(wǎng)站開發(fā)有哪些參考文獻(xiàn)域名權(quán)重查詢
  • wordpress電影主題會(huì)員廈門seo蜘蛛屯
  • 工裝設(shè)計(jì)方案網(wǎng)站seosem是什么職位
  • 國(guó)內(nèi)論壇網(wǎng)站有哪些免費(fèi)網(wǎng)站排名優(yōu)化在線
  • 怎么做商城網(wǎng)站全國(guó)最好的廣告公司加盟
  • 網(wǎng)站建設(shè)公司行業(yè)9 1短視頻安裝
  • 網(wǎng)站ui是平面設(shè)計(jì)嗎信息流推廣渠道
  • cms網(wǎng)站系統(tǒng)天津seo培訓(xùn)
  • 做網(wǎng)站如何避免商標(biāo)侵權(quán)百度最怕哪個(gè)投訴電話
  • 網(wǎng)站建設(shè)濟(jì)南有做的嗎外包seo公司
  • 天津網(wǎng)站建設(shè)網(wǎng)絡(luò)公司批量關(guān)鍵詞排名查詢工具
  • 網(wǎng)站怎么做彈幕播放器最好的免費(fèi)建站網(wǎng)站
  • 好的網(wǎng)站建設(shè)案例河北網(wǎng)站建設(shè)制作
  • 專門做面包和蛋糕的網(wǎng)站建立一個(gè)網(wǎng)站需要多少錢?
  • 可以做mc圖片的網(wǎng)站外鏈推廣
  • 深圳市網(wǎng)站建設(shè)公網(wǎng)絡(luò)搭建是干什么的