using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Geometry; //using Kingo.Plugin.EngineEditor.ViewModel; using System.Collections.Generic; using System.Data; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Windows.Media; namespace Kingo.Plugin.EngineEditor.View { /// /// FrmInterData2.xaml 的交互逻辑 /// public partial class FrmInterData2 : Window { private IFeatureLayer _featureLayer; private IGeometry _geometry; SolidColorBrush foregroundColor = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF6C8FD6")); SolidColorBrush lableColor = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FFFFFFFF")); public Dictionary Dic { get; set; } public FrmInterData2() { InitializeComponent(); } public IGeometry Geometry { get => _geometry; set { _geometry = value; } } public void DataInfStyle(Dictionary Keys) { spResult.Children.Clear(); DataTable data = Keys["图斑压盖"]; int i = 1; Border border = new Border(); border.BorderBrush = Brushes.AliceBlue; border.BorderThickness = new Thickness(1,1,1,1); border.Margin = new Thickness(10,0,10,10); Border Checkborder = new Border(); Checkborder.BorderBrush = Brushes.AliceBlue; Checkborder.BorderThickness = new Thickness(1, 1, 1, 1); Checkborder.Margin = new Thickness(10, 0, 10, 10); Grid GeoOverInfor = new Grid(); Grid CheckContext = new Grid(); GeoOverInfor.Children.Clear(); CheckContext.Children.Clear(); if (GeoOverInfor.RowDefinitions.Count > 1) GeoOverInfor.RowDefinitions.RemoveRange(1, GeoOverInfor.RowDefinitions.Count - 1); if (CheckContext.RowDefinitions.Count > 1) CheckContext.RowDefinitions.RemoveRange(1, CheckContext.RowDefinitions.Count - 1); if (GeoOverInfor.ColumnDefinitions.Count > 1) GeoOverInfor.ColumnDefinitions.RemoveRange(1, GeoOverInfor.ColumnDefinitions.Count - 1); if (CheckContext.ColumnDefinitions.Count > 1) CheckContext.ColumnDefinitions.RemoveRange(1, CheckContext.ColumnDefinitions.Count - 1); TableTitle(GeoOverInfor, data.Columns, foregroundColor, lableColor); foreach (DataRow row in data.Rows) { GeoOverInfor.RowDefinitions.Add(new RowDefinition()); for (int ii = 0; ii < data.Columns.Count; ii++) { SetStyle(GeoOverInfor, row[ii].ToString(), i, ii); } i++; } border.Child = GeoOverInfor; spResult.Children.Add(border); data = Keys["图形规范性"]; i = 1; TableTitle(CheckContext, data.Columns, foregroundColor, lableColor); foreach (DataRow row in data.Rows) { CheckContext.RowDefinitions.Add(new RowDefinition()); for (int ii = 0; ii < data.Columns.Count; ii++) { if (data.Columns[ii].ColumnName == "检查项") { SetStyle(CheckContext, row[ii].ToString(), i, ii, foregroundColor, lableColor); } else { SetStyle(CheckContext, row[ii].ToString(), i, ii); } } i++; } Checkborder.Child = CheckContext; } public void TableTitle(Grid grid, DataColumnCollection columns, SolidColorBrush foregroundColor, SolidColorBrush LableColor) { grid.RowDefinitions.Add(new RowDefinition()); for (int i = 0; i < columns.Count ; i++) { grid.ColumnDefinitions.Add(new ColumnDefinition()); } for (int i = 0; i < columns.Count; i++) { Border border = new Border(); border.BorderThickness = new Thickness(0.5, 0.5, 0.5, 0.5); border.BorderBrush = Brushes.White; border.SetValue(Grid.RowSpanProperty, 1); border.SetValue(Grid.ColumnProperty, i); Label label = new Label(); label.Background = foregroundColor; label.Foreground = LableColor; label.Content = Dic[columns[i].ColumnName]; label.Margin = new Thickness(1,0,0,0); Grid.SetColumn(label, i); Grid.SetRow(label, 0); grid.Children.Add(label); grid.Children.Add(border); } } private void SetStyle(Grid grid, string value, int RowIndex, int ColumnIndex) { Border border = new Border(); border.BorderThickness = new Thickness(0.5, 0.5, 0.5, 0.5); //border.BorderBrush = Brushes.Gray; border.SetValue(Grid.RowSpanProperty, RowIndex + 1); border.SetValue(Grid.ColumnProperty, ColumnIndex); grid.Children.Add(border); Label label = new Label(); label.Content = value; if (RowIndex % 2 == 0) { label.Background = Brushes.AliceBlue; } else label.Background = Brushes.White; grid.Children.Add(label); Grid.SetColumn(label, ColumnIndex); Grid.SetRow(label, RowIndex); } private void SetStyle(Grid grid, string value, int RowIndex, int ColumnIndex, SolidColorBrush foregroundColor, SolidColorBrush labelcolor) { Border border = new Border(); border.BorderThickness = new Thickness(0.5, 0.5, 0.5, 0.5); Label label = new Label(); label.Background = foregroundColor; label.Foreground = labelcolor; label.Content = value; Grid.SetColumn(label, ColumnIndex); Grid.SetRow(label, RowIndex); grid.Children.Add(label); grid.Children.Add(border); } public void ShowData() { this.Show(); } public void GeoDealWith(IGeometry geometry, IFeatureLayer layer) { FeatureLayer = layer; Geometry = geometry; } public IFeatureLayer FeatureLayer { get => _featureLayer; set { _featureLayer = value; } } private void Button_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { this.DragMove(); } private void Button_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e) { if (popContent.Visibility == Visibility.Collapsed) { popContent.Visibility = Visibility.Visible; } else popContent.Visibility = Visibility.Collapsed; } private void btnClose_Click(object sender, RoutedEventArgs e) { this.Close(); } private void btnClosePage_Click(object sender, RoutedEventArgs e) { popContent.Visibility = Visibility.Collapsed; } } }