年度变更建库软件5.0版本
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

205 lines
7.4 KiB

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
{
/// <summary>
/// FrmInterData2.xaml 的交互逻辑
/// </summary>
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<string, string> Dic { get; set; }
public FrmInterData2()
{
InitializeComponent();
}
public IGeometry Geometry
{
get => _geometry;
set
{
_geometry = value;
}
}
public void DataInfStyle(Dictionary<string, System.Data.DataTable> 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;
}
}
}