Compare commits

...

10 Commits

49 changed files with 4144 additions and 2301 deletions

View File

@ -197,10 +197,10 @@
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#EEE"/>
<Setter Property="Background" Value="Gray"/>
</Trigger>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" Value="#EEE"/>
<Setter Property="Background" Value="Gray"/>
</Trigger>
</Style.Triggers>
</Style>

View File

@ -5,7 +5,7 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridCell">
<Grid Background="Transparent">
<Grid Background="#14273a">
<ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Grid>
</ControlTemplate>
@ -20,16 +20,16 @@
</Style>
<Style TargetType="DataGridColumnHeader" x:Key="DataGridColumnHeaderfStyle">
<Setter Property="Background" Value="White"/>
<Setter Property="Background" Value="#14273a"/>
<Setter Property="Height" Value="30"/>
<Setter Property="BorderBrush" Value="#DDD"/>
<Setter Property="BorderThickness" Value="0,0,0,1"/>
<Setter Property="BorderThickness" Value="0,0,0,0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridColumnHeader">
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<TextBlock Text="{TemplateBinding Content}" VerticalAlignment="Center" HorizontalAlignment="Center"
Foreground="#565656" FontWeight="Bold"/>
Foreground="White" FontWeight="Bold"/>
</Border>
</ControlTemplate>
</Setter.Value>
@ -43,7 +43,7 @@
<Setter.Value>
<Style TargetType="DataGridRowHeader">
<Setter Property="Width" Value="0"/>
<Setter Property="Background" Value="Red"/>
<Setter Property="Background" Value="White"/>
</Style>
</Setter.Value>
</Setter>
@ -79,7 +79,7 @@
<Setter Property="Background" Value="#F7F9FA"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="#F7F9FA"/>
<Setter Property="Background" Value="Gray"/>
</Trigger>
</Style.Triggers>
</Style>
@ -89,10 +89,10 @@
<!--网格线颜色-->
<Setter Property="CanUserResizeColumns" Value="True"/>
<Setter Property="Foreground" Value="#444" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Background" Value="#14273a" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="HorizontalGridLinesBrush" Value="#EEE"/>
<Setter Property="VerticalGridLinesBrush" Value="Transparent"/>
<Setter Property="HorizontalGridLinesBrush" Value="#14273a"/>
<Setter Property="VerticalGridLinesBrush" Value="#14273a"/>
<Setter Property="CanUserAddRows" Value="False"/>
<Setter Property="AutoGenerateColumns" Value="False"/>

View File

@ -1,29 +1,29 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ControlTemplate TargetType="UserControl" x:Key="PageTempalte">
<Grid Margin="10,5">
<Grid Background="#14273a">
<Grid.RowDefinitions>
<RowDefinition Height="45"/>
<RowDefinition/>
</Grid.RowDefinitions>
<!--搜索输入框-->
<TextBox VerticalAlignment="Center" Width="300" HorizontalAlignment="Left"
Text="{Binding SearchKey,UpdateSourceTrigger=PropertyChanged}"
<TextBox VerticalAlignment="Center" Width="300" HorizontalAlignment="Left" Margin="10,5"
Text="{Binding SearchKey,UpdateSourceTrigger=PropertyChanged}" Foreground="White"
Style="{StaticResource SearchTextBoxStyle}" Name="tb_search">
<TextBox.InputBindings>
<KeyBinding Key="Return" Command="{Binding RefreshCommand}"/>
</TextBox.InputBindings>
</TextBox>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Right">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="10,0" >
<!--刷新按钮-->
<Button Content="刷新" Style="{StaticResource NormalButtonStyle}"
Command="{Binding RefreshCommand}"
Width="60" Margin="5,0" Background="#88409EFE"/>
<Button Content="刷新" Style="{StaticResource NormalButtonStyle}"
Command="{Binding RefreshCommand}" Margin="2,0"
Width="60" Background="#88409EFE"/>
<!--添加按钮-->
<Button Content="新建" Style="{StaticResource IconWithContentButtonStyle}"
Command="{Binding ModifyCommand}"
Tag="&#xe603;" Width="80">
Command="{Binding ModifyCommand}"
Tag="&#xe603;" Width="80" Margin="5">
<Button.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<GradientStop Color="#FE582D" Offset="0"/>
@ -35,7 +35,7 @@
<!--内容部分-->
<Border CornerRadius="5" Background="White" Grid.Row="1" Margin="0,5,0,10">
<Border CornerRadius="5" Background="White" Grid.Row="1" Margin="10,5,10,10">
<Border.Effect>
<DropShadowEffect BlurRadius="5" Color="Gray" ShadowDepth="0" Opacity="0.3"/>
</Border.Effect>
@ -73,14 +73,14 @@
</ControlTemplate>
<ControlTemplate TargetType="UserControl" x:Key="PageSearchTempalte">
<Grid Margin="10,5">
<Grid Background="#14273a">
<Grid.RowDefinitions>
<RowDefinition Height="45"/>
<RowDefinition/>
</Grid.RowDefinitions>
<!--搜索输入框-->
<TextBox VerticalAlignment="Center" Width="300" HorizontalAlignment="Left"
Text="{Binding SearchKey,UpdateSourceTrigger=PropertyChanged}"
<TextBox VerticalAlignment="Center" Width="300" HorizontalAlignment="Left" Margin="10,5"
Text="{Binding SearchKey,UpdateSourceTrigger=PropertyChanged}" Foreground="White"
Style="{StaticResource SearchTextBoxStyle}" Name="tb_search">
<TextBox.InputBindings>
<KeyBinding Key="Return" Command="{Binding RefreshCommand}"/>
@ -92,12 +92,12 @@
<!--刷新按钮-->
<Button Content="刷新" Style="{StaticResource NormalButtonStyle}"
Command="{Binding RefreshCommand}"
Width="60" Margin="5,0" Background="#88409EFE"/>
Width="60" Margin="20,0" Background="#88409EFE"/>
</StackPanel>
<!--内容部分-->
<Border CornerRadius="5" Background="White" Grid.Row="1" Margin="0,5,0,10">
<Border CornerRadius="5" Background="White" Grid.Row="1" Margin="10,5,10,10">
<Border.Effect>
<DropShadowEffect BlurRadius="5" Color="Gray" ShadowDepth="0" Opacity="0.3"/>
</Border.Effect>
@ -109,21 +109,21 @@
</ControlTemplate>
<ControlTemplate TargetType="UserControl" x:Key="PageSearchAndDownloadTempalte">
<Grid Margin="10,5">
<Grid Background="#14273a">
<Grid.RowDefinitions>
<RowDefinition Height="45"/>
<RowDefinition/>
</Grid.RowDefinitions>
<!--搜索输入框-->
<TextBox VerticalAlignment="Center" Width="300" HorizontalAlignment="Left"
Text="{Binding SearchKey,UpdateSourceTrigger=PropertyChanged}"
<TextBox VerticalAlignment="Center" Width="300" HorizontalAlignment="Left" Margin="10,5"
Text="{Binding SearchKey,UpdateSourceTrigger=PropertyChanged}" Foreground="White"
Style="{StaticResource SearchTextBoxStyle}" Name="tb_search">
<TextBox.InputBindings>
<KeyBinding Key="Return" Command="{Binding RefreshCommand}"/>
</TextBox.InputBindings>
</TextBox>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Right">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,0,15,0">
<TextBlock VerticalAlignment="Center" Text="{Binding DownloadDataMsg}" FontSize="12" Foreground="{Binding DownloadDataMsgForeground}" Visibility="{Binding DownloadDataMsgVisibility}" Margin="20,0" />
<!--刷新按钮-->
<Button Content="刷新" Style="{StaticResource NormalButtonStyle}"
@ -145,7 +145,7 @@
</StackPanel>
<!--内容部分-->
<Border CornerRadius="5" Background="White" Grid.Row="1" Margin="0,5,0,10">
<Border CornerRadius="5" Background="White" Grid.Row="1" Margin="10,5,10,10">
<Border.Effect>
<DropShadowEffect BlurRadius="5" Color="Gray" ShadowDepth="0" Opacity="0.3"/>
</Border.Effect>

View File

@ -23,7 +23,7 @@
<Grid>
<Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="White"
Background="Transparent"
CornerRadius="5" Height="30">
<Border.Effect>
<DropShadowEffect BlurRadius="5" Color="Gray" ShadowDepth="0" Opacity="0.1"/>
@ -40,7 +40,7 @@
Foreground="#CCC" Grid.Column="1" Visibility="Collapsed" Name="mask"
Effect="{x:Null}"/>
<ScrollViewer x:Name="PART_ContentHost" Grid.Column="1" Focusable="false"
VerticalAlignment="Center"
VerticalAlignment="Center"
HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"/>
</Grid>
</Grid>

View File

@ -1,6 +1,8 @@
using System;
using LiveCharts;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@ -48,8 +50,74 @@ namespace InSituLaboratory.Entities.Sensor
/// </summary>
public string? Insulation { get; set; }
/// <summary>
/// 颗粒物序号
/// </summary>
public float? ParticleNumber { get; set; }
/// <summary>
/// 坐标X
/// </summary>
public float? CoordinateX { get; set; }
/// <summary>
/// 坐标Y
/// </summary>
public float? CoordinateY { get; set; }
/// <summary>
/// 类型
/// </summary>
public float? Type { get; set; }
/// <summary>
/// 面积
/// </summary>
public float? Area { get; set; }
/// <summary>
/// 长
/// </summary>
public float? Long { get; set; }
/// <summary>
/// 宽
/// </summary>
public float? Wide { get; set; }
[NotMapped]
public int DataIdNum { get; set; }
public ChartsModel AreaCharts { get; set; } = new ChartsModel()
{
Values = new ChartValues<float>(),
Value_Name = "面积",
X_Time = new List<string>(),
Y_MinValue = Convert.ToInt32(tools.GetAppSetting("颗粒物分析仪面积Min")),
Y_MaxValue = Convert.ToInt32(tools.GetAppSetting("颗粒物分析仪面积Max"))
};
public ChartsModel LongCharts { get; set; } = new ChartsModel()
{
Values = new ChartValues<float>(),
Value_Name = "长",
X_Time = new List<string>(),
Y_MinValue = Convert.ToInt32(tools.GetAppSetting("颗粒物分析仪长Min")),
Y_MaxValue = Convert.ToInt32(tools.GetAppSetting("颗粒物分析仪长Max"))
};
public ChartsModel WideCharts { get; set; } = new ChartsModel()
{
Values = new ChartValues<float>(),
Value_Name = "宽",
X_Time = new List<string>(),
Y_MinValue = Convert.ToInt32(tools.GetAppSetting("颗粒物分析仪宽Min")),
Y_MaxValue = Convert.ToInt32(tools.GetAppSetting("颗粒物分析仪宽Max"))
};
}
}

View File

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InSituLaboratory.Entities
{
/// <summary>
/// 子时序号枚举
/// </summary>
public class SysEmu
{
[Key]
public int ID { get; set; }
public int Number { get; set; }
}
}

View File

@ -186,6 +186,30 @@ namespace InSituLaboratory.Entities
return txt;
}
/// <summary>
/// 将文本文件读取到末尾
/// </summary>
/// <param name="pathAName"></param>
/// <returns></returns>
public static string ReadTXT_StreamReader(string pathAName)
{
StreamReader ObjectName = new StreamReader(pathAName);
return ObjectName.ReadToEnd();
}
/// <summary>
/// 逐行读取文件,返回数组
/// </summary>
/// <param name="pathAName"></param>
/// <returns></returns>
public static string[] ReadTXT_ReadAllLines(string pathAName)
{
string[] txtContent = null;
txtContent = System.IO.File.ReadAllLines(pathAName, Encoding.UTF8);
return txtContent;
}
#endregion
#region
@ -282,6 +306,19 @@ namespace InSituLaboratory.Entities
#endregion
#region CRC
public static byte GetXor(byte[] data)
{
byte CheckCode = 0;
int len = data.Length;
for (int i = 0; i < len; i++)
{
CheckCode ^= data[i];
}
return CheckCode;
}
#endregion
#region 16ASCII
/// <summary>
/// 16进制转字符串ASCII

View File

@ -31,5 +31,12 @@ namespace InSituLaboratory.IService
/// <returns></returns>
string GetDeviceByDeviceNameMinTime(string DeviceName);
/// <summary>
/// 获取子时序号
/// </summary>
/// <returns></returns>
IEnumerable<SysEmu> GetNum();
}
}

View File

@ -0,0 +1,14 @@
using InSituLaboratory.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InSituLaboratory.IService
{
public interface ISysDevcieService : IBaseService
{
IEnumerable<SysDevice> GetDevices(string key);
}
}

View File

@ -191,6 +191,35 @@ namespace InSituLaboratory.IService.Sensor
#endregion
#region
/// <summary>
/// 获取颗粒物分析仪数据
/// </summary>
/// <returns></returns>
IEnumerable<ParticleAnalyzerModel> GetParticleAnalyzer();
/// <summary>
/// 获取颗粒物分析仪数据--图表
/// </summary>
/// <param name="key"></param>
/// <param name="pageSize"></param>
/// <param name="pageIndex"></param>
/// <param name="totalCount"></param>
/// <returns></returns>
IEnumerable<ParticleAnalyzerModel> GetParticleAnalyzerData();
/// <summary>
/// 获取颗粒物分析仪数据--分页 按时间倒序排序
/// </summary>
/// <param name="key"></param>
/// <param name="pageSize"></param>
/// <param name="pageIndex"></param>
/// <param name="totalCount"></param>
/// <returns></returns>
IEnumerable<ParticleAnalyzerModel> GetParticleAnalyzerData(string key, int pageSize, int pageIndex, out int totalCount);
#endregion
#region ---
/// <summary>
/// 获取传感器电源开关数据

View File

@ -0,0 +1,85 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InSituLaboratory.Models.Sendsor
{
/// <summary>
/// 颗粒物分析仪
/// </summary>
public class ParticleAnalyzerModels
{
/// <summary>
/// 主键
/// </summary>
public int Id { get; set; }
/// <summary>
/// 采样时间
/// </summary>
public DateTime SamplingTime { get; set; }
/// <summary>
/// 记录时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 故障代码--设备温度 (未开启/未监控 正常 警报 故障)
/// </summary>
public string? Tem { get; set; }
/// <summary>
/// 故障代码--设备湿度 (未开启/未监控 正常 警报 故障)
/// </summary>
public string? Hum { get; set; }
/// <summary>
/// 故障代码--压力 (未开启/未监控 正常 警报 故障)
/// </summary>
public string? Pressure { get; set; }
/// <summary>
/// 故障代码--绝缘 (未开启/未监控 正常 警报 故障)
/// </summary>
public string? Insulation { get; set; }
/// <summary>
/// 颗粒物序号
/// </summary>
public float? ParticleNumber { get; set; }
/// <summary>
/// 坐标X
/// </summary>
public float? CoordinateX { get; set; }
/// <summary>
/// 坐标Y
/// </summary>
public float? CoordinateY { get; set; }
/// <summary>
/// 类型
/// </summary>
public float? Type { get; set; }
/// <summary>
/// 面积
/// </summary>
public float? Area { get; set; }
/// <summary>
/// 长
/// </summary>
public float? Long { get; set; }
/// <summary>
/// 宽
/// </summary>
public float? Wide { get; set; }
}
}

View File

@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InSituLaboratory.Models
{
/// <summary>
/// 设备
/// </summary>
public class SysDevicesModel
{
public int Index { get; set; }
/// <summary>
/// ID
/// </summary>
public int ID { get; set; }
/// <summary>
/// 设备代码
/// </summary>
public string? DeviceType { get; set; }
/// <summary>
/// 设备名称
/// </summary>
public string? DeviceName { get; set; }
/// <summary>
/// 单次工作最大时长
/// </summary>
public string? WorkTime { get; set; }
/// <summary>
/// 最小工作时长
/// </summary>
public string? MinWorkTime { get; set; }
}
}

View File

@ -72,6 +72,7 @@ namespace InSituLaboratory.ORM
public virtual DbSet<SysSequential> SysSequential { get; set; }
public virtual DbSet<SysSequentialDetails> SysSequentialDetails { get; set; }
public virtual DbSet<SysDevice> SysDevice { get; set; }
public virtual DbSet<SysEmu> SysEmu { get; set; }
public virtual DbSet<SysSequentialTotal> SysSequentialTotal { get; set; }
public virtual DbSet<CurrentFaultyEquipment> CurrentFaultyEquipment { get; set; }
public virtual DbSet<CurrentWorkEquipment> CurrentWorkEquipment { get; set; }

View File

@ -57,5 +57,11 @@ namespace InSituLaboratory.Service
return workTime;
}
public IEnumerable<SysEmu> GetNum()
{
return this.Set<SysEmu>();
}
}
}

View File

@ -278,6 +278,50 @@ namespace InSituLaboratory.Service.Sensor
}
#endregion
#region
/// <summary>
/// 获取颗粒物分析仪数据
/// </summary>
/// <returns></returns>
public IEnumerable<ParticleAnalyzerModel> GetParticleAnalyzer()
{
return this.Query<ParticleAnalyzerModel>(m => true).OrderByDescending(n => n.CreateTime).AsNoTracking();
}
/// <summary>
/// 获取颗粒物分析仪数据---图表
/// </summary>
/// <param name="key"></param>
/// <param name="pageSize"></param>
/// <param name="pageIndex"></param>
/// <param name="totalCount"></param>
/// <returns></returns>
public IEnumerable<ParticleAnalyzerModel> GetParticleAnalyzerData()
{
return this.Query<ParticleAnalyzerModel>(m => true).OrderBy(m => m.CreateTime).AsNoTracking().ToList();
}
/// <summary>
/// 获取颗粒物分析仪数据--分页 按时间倒序排序
/// </summary>
/// <param name="key"></param>
/// <param name="pageSize"></param>
/// <param name="pageIndex"></param>
/// <param name="totalCount"></param>
/// <returns></returns>
public IEnumerable<ParticleAnalyzerModel> GetParticleAnalyzerData(string key, int pageSize, int pageIndex, out int totalCount)
{
var pResult = this.QueryPage<ParticleAnalyzerModel, string>(m => string.IsNullOrEmpty(key) || m.SamplingTime.ToString().Contains(key), pageSize, pageIndex, order => order.SamplingTime.ToString(), false);
totalCount = pResult.TotalCount;
return pResult.DataList;
}
#endregion
#region
/// <summary>
/// 获取传感器电源开关数据

View File

@ -0,0 +1,38 @@
using InSituLaboratory.Entities;
using InSituLaboratory.IService;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InSituLaboratory.Service
{
public class SysDeviceService : BaseService, ISysDevcieService
{
public SysDeviceService(DbContext context) : base(context)
{
}
/// <summary>
/// 根据搜索关键词进行数据检索
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public IEnumerable<SysDevice> GetDevices(string key)
{
// 需要将搜索关键词加入判断。。。。。。
return this.Set<SysDevice>()
.Where(m =>
string.IsNullOrEmpty(key) ||
m.DeviceType.Contains(key) ||
m.DeviceName.Contains(key)
);
}
}
}

View File

@ -77,6 +77,14 @@
<add key="测序仪试剂温度Min" value="0"/>
<add key="测序仪样本浓度Max" value="10"/>
<add key="测序仪样本浓度Min" value="0"/>
<add key="颗粒物分析仪面积Max" value="50"/>
<add key="颗粒物分析仪面积Min" value="0"/>
<add key="颗粒物分析仪长Max" value="100"/>
<add key="颗粒物分析仪长Min" value="0"/>
<add key="颗粒物分析仪宽Max" value="100"/>
<add key="颗粒物分析仪宽Min" value="0"/>
<!--文件下载-->
<add key="MEMSSPFolder" value="D:\\Download\\"/>
</appSettings>

View File

@ -58,6 +58,7 @@ namespace InSituLaboratory
containerRegistry.Register<ISysStatusService, SysStatusService>();
containerRegistry.Register<ISensorService, SensorService>();
containerRegistry.Register<ILogService, LogService>();
containerRegistry.Register<ISysDevcieService, SysDeviceService>();
containerRegistry.RegisterForNavigation<Views.Pages.DashboardView>();
@ -66,6 +67,7 @@ namespace InSituLaboratory
containerRegistry.RegisterForNavigation<Views.Pages.RoleView>();
containerRegistry.RegisterForNavigation<Views.Pages.SequentialDistributionView>();
containerRegistry.RegisterForNavigation<Views.Pages.RelayView>();
containerRegistry.RegisterForNavigation<Views.Pages.SysDeviceView>();
containerRegistry.RegisterForNavigation<Views.Pages.History.CavityOperationView>();
containerRegistry.RegisterForNavigation<Views.Pages.History.CavityEnvironmentView>();
@ -91,6 +93,7 @@ namespace InSituLaboratory
containerRegistry.RegisterDialog<Views.Pages.Dialogs.SelectUserView>();
containerRegistry.RegisterDialog<Views.Pages.Dialogs.SelectRoleView>();
containerRegistry.RegisterDialog<Views.Pages.Dialogs.ModifySequentialView>();
containerRegistry.RegisterDialog<Views.Pages.Dialogs.ModifySysDevicesView>();
}
}

View File

@ -516,7 +516,7 @@ namespace InSituLaboratory.Base
#endregion
#region
#region
/// <summary>
/// 获取类的属性集合以便生成CSV文件的所有Column标题
/// </summary>
@ -603,5 +603,101 @@ namespace InSituLaboratory.Base
return successFlag;
}
#endregion
#region
/// <summary>
/// 获取类的属性集合以便生成CSV文件的所有Column标题
/// </summary>
/// <returns></returns>
public static PropertyInfo[] GetParticleInfoArray()
{
PropertyInfo[] props = null;
try
{
Type type = typeof(ParticleAnalyzerModels);
object obj = Activator.CreateInstance(type);
props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
}
catch (Exception ex)
{ }
return props;
}
/// <summary>
/// Save the List data to CSV file
/// </summary>
/// <param name="BaseStationList">data source</param>
/// <param name="filePath">file path</param>
/// <returns>success flag</returns>
public static bool SaveParticleDataToCSVFile(ObservableCollection<ParticleAnalyzerModels> BaseStationList, string filePath)
{
bool successFlag = true;
StringBuilder strColumn = new StringBuilder();
StringBuilder strValue = new StringBuilder();
StreamWriter sw = null;
PropertyInfo[] props = GetParticleInfoArray();
try
{
sw = new StreamWriter(filePath);
for (int i = 0; i < props.Length; i++)
{
strColumn.Append(props[i].Name);
strColumn.Append(",");
}
strColumn.Remove(strColumn.Length - 1, 1);
sw.WriteLine(strColumn); //write the column name
for (int i = 0; i < BaseStationList.Count; i++)
{
strValue.Remove(0, strValue.Length); //clear the temp row value
strValue.Append(BaseStationList[i].Id);
strValue.Append(",");
strValue.Append(BaseStationList[i].CreateTime);
strValue.Append(",");
strValue.Append(BaseStationList[i].SamplingTime);
strValue.Append(",");
strValue.Append(BaseStationList[i].Tem);
strValue.Append(",");
strValue.Append(BaseStationList[i].Hum);
strValue.Append(",");
strValue.Append(BaseStationList[i].Pressure);
strValue.Append(",");
strValue.Append(BaseStationList[i].Insulation);
strValue.Append(",");
strValue.Append(BaseStationList[i].ParticleNumber);
strValue.Append(",");
strValue.Append(BaseStationList[i].CoordinateX);
strValue.Append(",");
strValue.Append(BaseStationList[i].CoordinateY);
strValue.Append(",");
strValue.Append(BaseStationList[i].Type);
strValue.Append(",");
strValue.Append(BaseStationList[i].Area);
strValue.Append(",");
strValue.Append(BaseStationList[i].Long);
strValue.Append(",");
strValue.Append(BaseStationList[i].Wide);
sw.WriteLine(strValue); //write the row value
}
}
catch (Exception ex)
{
successFlag = false;
}
finally
{
if (sw != null)
{
sw.Dispose();
}
}
return successFlag;
}
#endregion
}
}

View File

@ -48,7 +48,7 @@ namespace InSituLaboratory.Common
//crc
static byte nr_crc = 0;
/// <summary>
/// <summary>
/// 数据解析
/// </summary>
/// <param name="byteList"></param>
@ -331,6 +331,24 @@ namespace InSituLaboratory.Common
db.Insertable<DataParsingModelSqlSugar>(dataParsingModel).ExecuteCommand();
}
}
//反馈正常时序
if (dataNew[1] == 0x01 && dataNew[2] == 0x07)
{
}
}

View File

@ -0,0 +1,55 @@
using InSituLaboratory.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InSituLaboratory.Common
{
/// <summary>
/// 基站协议封装
/// </summary>
public class JZEncapsulation
{
public List<byte> EncapAction(List<byte> bytes)
{
//定义封装好的报文List
List<byte> byteaq = new List<byte>();
//添加包头
byteaq.Add(0xAA);
byteaq.Add(0xBB);
//添加版本号
byteaq.Add(0x01);
//添加包长度
byteaq.Add(0x00);
byteaq.Add(0x00);
//添加包ID
byteaq.Add(0x00);
byteaq.Add(0x00);
byteaq.Add(0x00);
byteaq.Add(0x00);
//循环添加下位机报文
foreach (byte b in bytes)
{
byteaq.Add(b);
}
byte[] bytes_length = BitConverter.GetBytes(byteaq.Count() + 3);
byteaq[3] = bytes_length[1];
byteaq[4] = bytes_length[0];
//添加crc校验
byteaq.Add(tools.GetXor(byteaq.ToArray()));
byteaq.Add(0xEE);
byteaq.Add(0xFF);
return byteaq;
}
}
}

View File

@ -0,0 +1,81 @@
using InSituLaboratory.Entities.ExperimentalStationEntities;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InSituLaboratory.Common
{
/// <summary>
/// 基站返回的数据解析
/// </summary>
public class TXTDataParsing
{
//连接钥匙
private static readonly string ConnStr = System.Configuration.ConfigurationManager.ConnectionStrings["db"].ConnectionString;
//获取当前程序运行路径
private string Save_Path = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"数据记录\";
//系统状态表
public SysStatus sysStatus = new SysStatus();
//当前工作设备 0-待机 1-工作
public CurrentWorkEquipment currentWorkEquipment = new CurrentWorkEquipment();
//当前故障设备 0-正常 1-故障
public CurrentFaultyEquipment currentFaultyEquipment = new CurrentFaultyEquipment();
//包头
string head = "AABB";
//包尾
string tail = "EEFF";
//版本号 -固定
byte version = 0x01;
//crc
static byte nr_crc = 0;
/// <summary>
/// 数据解析
/// </summary>
/// <param name="byteList"></param>
public void ParsingData(List<byte> byteList)
{
//如果数组长度为0 舍弃
if (byteList.Count() == 0)
return;
//将报文中的内容截取出来 并保存至本地TXT文件内
string NR_TXT = "";
for (int i = 0; i < byteList.Count; i++)
{
NR_TXT += byteList[i].ToString("X2") + " ";
}
//SqlSugar配置文件
ConnectionConfig connectionConfig = new ConnectionConfig()
{
ConnectionString = ConnStr,
IsAutoCloseConnection = true,
DbType = DbType.Sqlite
};
//包头包尾校验
if ((byteList[0].ToString("X2") + byteList[1].ToString("X2")) != head || (byteList[byteList.Count -1].ToString("X2") + byteList[byteList.Count -2].ToString("X2")) != tail)
return;
}
}
}

View File

@ -14,6 +14,7 @@ using InSituLaboratory.IService;
using Prism.Commands;
using System.Windows;
using System.Windows.Forms;
using InSituLaboratory.Entities;
namespace InSituLaboratory.ViewModels.Pages
{
@ -97,22 +98,31 @@ namespace InSituLaboratory.ViewModels.Pages
/// <summary>
/// 读取文本文档
/// </summary>
/// <param name="o"></param>
/// <param name="o"></param>
public void DoRead(object o)
{
System.Windows.Forms.MessageBox.Show("暂无此项功能!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
string? info = null;
string? txtContent = null;
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Title = "选择文件";
openFileDialog.Multiselect = false;//选择多个文件
openFileDialog.RestoreDirectory = true;//跟踪上次打开的文件的目录
//openFileDialog.Filter = "所有文件(*.*)|*";
openFileDialog.Filter = "Text files(*.txt) | *.txt";
openFileDialog.CheckFileExists = true;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
info = openFileDialog.FileName;
}
if (!string.IsNullOrEmpty(info))
{
//逐行读取文件,返回数组
txtContent = tools.ReadTXT_StreamReader(info);
}
}
}

View File

@ -12,6 +12,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Forms;
using System.Windows.Markup;
using System.Windows.Media.Animation;
namespace InSituLaboratory.ViewModels.Pages.Dialogs
@ -26,9 +27,12 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
/// 传感器设备集合
/// </summary>
public List<SysDevice> DeviceNodes { get; set; } = new List<SysDevice>();
public List<SysEmu> SysNumberList { get; set; } = new List<SysEmu>();
public SysSequentialDetails SysSequentialdata { get; set; }
public static List<Int32> Intlist { get; set; } = new List<Int32>() { 1, 2, 3, 4, 5, 6 };
public string? workTime { get; set; }
public string? minworkTime { get; set; }
@ -44,12 +48,12 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
/// 开始时间
/// </summary>
public DateTime? startTime { get; set; }
public DateTime startTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public DateTime? endTime { get; set; }
public DateTime endTime { get; set; }
/// <summary>
/// 序号
@ -161,33 +165,34 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
}
DeviceNodes = _deviceSvice.GetDevices().ToList();
//更换子时序号数据源
SysNumberList = _deviceSvice.GetNum().ToList();
}
public override void DoSave()
{
try
{
//非空校
#region
if (string.IsNullOrEmpty(SequenceGroup))
{
System.Windows.Forms.MessageBox.Show("子时序号不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
throw new Exception("子时序号不能为空");
}
else if (string.IsNullOrEmpty(SensorID))
{
System.Windows.Forms.MessageBox.Show("设备编号不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
throw new Exception("设备编号不能为空");
}
else if (WorkTime == null || WorkTime == 0)
{
System.Windows.Forms.MessageBox.Show("工作时长不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
throw new Exception("工作时长不能为空");
}
else if (DurationTime == null || DurationTime == 0)
{
System.Windows.Forms.MessageBox.Show("循环间隔时长不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
throw new Exception("循环间隔时长不能为空");
}
#endregion
#region |
var data = _sequentialService.GetSequentials(kind).ToList();
if (data.Count != 0)
{
@ -200,14 +205,13 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
if (Device != SensorID)
{
//传感器是否已存在校验
var selectFirst = _sequentialService.Query<SysSequentialDetails>(m => m.SensorID == SensorID && m.Sequential == kind && m.IsDelete == 0).ToList();
var selectFirst = _sequentialService.Query<SysSequentialDetails>(m => m.Number == Number).ToList();
if (selectFirst.Count != 0)
{
foreach (var item in selectFirst)
{
System.Windows.Forms.MessageBox.Show(kind + "- 子时序" + item.SequenceGroup + "中,已配置" + SensorID + "" + " 请重新配置。", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
System.Windows.Forms.MessageBox.Show(kind + "- 子时序" + selectFirst[0].SequenceGroup + "中,已配置" + SensorID + "" + " 请重新配置。", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
}
}
@ -226,6 +230,7 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
}
}
///循环时长校验
if (data1.StartTime == startTime && data1.EndTime == endTime)
{
@ -240,8 +245,10 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
}
}
}
#endregion
#region
///工作时长是否已超过传感器预设时间
workTime = _deviceSvice.GetDeviceByDeviceName(SensorID);
minworkTime = _deviceSvice.GetDeviceByDeviceNameMinTime(SensorID);
if (workTime == "无")
@ -254,74 +261,119 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
}
workInt = Convert.ToInt64(workTime); //设备预设最大工作时长
minworkInt = Convert.ToInt64(minworkTime);//设备预设最小工作时长
switch (SensorID)
{
case "气相色谱仪":
if (Convert.ToInt64(WorkTime) > workInt)
{
System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",已超过设备最大工作时长:" + workTime + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
throw new Exception("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",已超过设备最大工作时长:" + workTime + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!");
}
else if (Convert.ToInt64(WorkTime) < minworkInt)
{
System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
throw new Exception("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!");
}
break;
case "质谱仪":
if (Convert.ToInt64(WorkTime) > workInt)
{
System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",已超过设备最大工作时长:" + workTime + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
throw new Exception("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",已超过设备最大工作时长:" + workTime + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!");
}
else if (Convert.ToInt64(WorkTime) < minworkInt)
{
System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
throw new Exception("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!");
}
break;
case "二氧化碳同位素分析仪":
if (Convert.ToInt64(WorkTime) > workInt)
{
System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",已超过设备最大工作时长:" + workTime + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
throw new Exception("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",已超过设备最大工作时长:" + workTime + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!");
}
else if (Convert.ToInt64(WorkTime) < minworkInt)
{
System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
throw new Exception("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!");
}
break;
case "甲烷传感器":
if (Convert.ToInt64(WorkTime) > workInt)
{
System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + "超过设备最大工作时长:" + workTime + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
throw new Exception("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",已超过设备最大工作时长:" + workTime + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!");
}
else if (Convert.ToInt64(WorkTime) < minworkInt)
{
System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
throw new Exception("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!");
}
break;
case "显微拉曼分析仪":
if (Convert.ToInt64(WorkTime) < minworkInt)
{
System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
throw new Exception("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",已超过设备最大工作时长:" + workTime + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!");
}
break;
case "色质联用":
if (Convert.ToInt64(WorkTime) < minworkInt)
{
System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
throw new Exception("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!");
}
break;
default:
break;
}
///计算设备工作时长是否超过总时序时长
System.TimeSpan t1 = endTime - startTime;
float getMinute = (float)t1.TotalMinutes;
//根据开始时间、结束时间、是否删除查询母时序表
//若存在记录则根据母表ID去查询子表中所有子时序的工作时长与时序总时长进行对比
var serID = 0;
float? time = 0;
var DataList = _sequentialService.Query<SysSequential>(m => m.StartTime == startTime && m.EndTime == endTime && m.IsDelete == 0 && m.Sequential == kind).ToList();
if (DataList.Count() != 0)
{
foreach (var Data in DataList)
{
serID = Data.Number;
}
var data_child = _sequentialService.Query<SysSequentialDetails>(m => m.SysSquentialID == serID && m.IsDelete == 0).ToList();
foreach (var Data in data_child)
{
time += Data.WorkTime;
}
//编辑情况下
if (Number != 0)
{
var child = _sequentialService.Query<SysSequentialDetails>(m => m.Number == Number).ToList();
if (WorkTime > child[0].WorkTime)
{
time = time - child[0].WorkTime;
var total = time + WorkTime;
if (total > getMinute)
{
throw new Exception("当前设置的传感器总工作时长" + "(" + total + "分钟" + ")" + " 已超过时序总时长!" + "(" + getMinute + "分钟" + ")");
}
}
}
else
{
var total = time + WorkTime;
if (total > getMinute)
{
throw new Exception("当前设置的传感器总工作时长" + "(" + total + "分钟" + ")" + " 已超过时序总时长!" + "(" + getMinute + "分钟" + ")");
}
}
}
else
{
if (WorkTime > getMinute)
{
throw new Exception("当前设置的传感器总工作时长" + "(" + WorkTime + "分钟" + ")" + " 已超过时序总时长!" + "(" + getMinute + "分钟" + ")");
}
}
#endregion
#region
//保存时 首次去查询 data == null 说明数据库中无数据 为第一次插入
if (data.Count() == 0)
{
@ -464,6 +516,7 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
}
}
#endregion
base.DoSave();

View File

@ -0,0 +1,100 @@
using InSituLaboratory.Entities;
using InSituLaboratory.IService;
using InSituLaboratory.Models;
using InSituLaboratory.Service;
using Microsoft.IdentityModel.Tokens;
using Prism.Commands;
using Prism.Services.Dialogs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Forms;
namespace InSituLaboratory.ViewModels.Pages.Dialogs
{
/// <summary>
/// 新增/编辑设备配置
/// </summary>
public class ModifySysDevicesViewModel : DialogViewModelBase
{
public SysDevicesModel SysDevice { get; set; } = new SysDevicesModel();
ISysDevcieService _iSysDevcieService;
public ModifySysDevicesViewModel(ISysDevcieService sysDevcieService)
{
_iSysDevcieService = sysDevcieService;
SaveCommand = new DelegateCommand(DoSave);
}
/// <summary>
/// 打开弹窗
/// </summary>
/// <param name="parameters"></param>
public override void OnDialogOpened(IDialogParameters parameters)
{
var model = parameters.GetValue<SysDevicesModel>("model");
if (model == null)
{
Title = "新增参数配置";
}
else
{
Title = "编辑参数配置";
var sm = _iSysDevcieService.Find<SysDevice>(model.ID);
SysDevice.ID = sm.Id;
SysDevice.DeviceType = sm.DeviceType;
SysDevice.DeviceName = sm.DeviceName;
SysDevice.WorkTime = sm.WorkTime;
SysDevice.MinWorkTime = sm.MinWorkTime;
}
}
/// <summary>
/// 新增/编辑保存
/// </summary>
public override void DoSave()
{
try
{
//非空校验
if (string.IsNullOrEmpty(SysDevice.DeviceType) || string.IsNullOrEmpty(SysDevice.DeviceName) || string.IsNullOrEmpty(SysDevice.WorkTime) || string.IsNullOrEmpty(SysDevice.MinWorkTime))
{
throw new Exception("参数配置信息不能为空!");
}
//新增
if (SysDevice.ID == 0)
{
_iSysDevcieService.Insert<SysDevice>(new SysDevice
{
DeviceType = SysDevice.DeviceType,
DeviceName = SysDevice.DeviceName,
WorkTime = SysDevice.WorkTime,
MinWorkTime = SysDevice.MinWorkTime,
});
}
//编辑
else
{
var entity = _iSysDevcieService.Find<SysDevice>(SysDevice.ID);
entity.DeviceType = SysDevice.DeviceType;
entity.DeviceName = SysDevice.DeviceName;
entity.WorkTime = SysDevice.WorkTime;
entity.MinWorkTime= SysDevice.MinWorkTime;
_iSysDevcieService.Update<SysDevice>(entity);
}
base.DoSave();
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
}
}
}

View File

@ -1,9 +1,20 @@
using Prism.Regions;
using InSituLaboratory.Base;
using InSituLaboratory.Controls;
using InSituLaboratory.Entities;
using InSituLaboratory.Entities.Sensor;
using InSituLaboratory.IService.Sensor;
using InSituLaboratory.Models.Sendsor;
using Prism.Commands;
using Prism.Regions;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media;
using System.Windows.Threading;
namespace InSituLaboratory.ViewModels.Pages.Sensor
{
@ -12,9 +23,186 @@ namespace InSituLaboratory.ViewModels.Pages.Sensor
/// </summary>
public class ParticleAnalyzerViewModel : ViewModelBase
{
public ParticleAnalyzerViewModel(IRegionManager regionManager) : base(regionManager)
#region
public ParticleAnalyzerModel ParticleModel { get; set; } = new ParticleAnalyzerModel();
public PaginationModel PaginationModel { get; set; } = new PaginationModel();
public DispatcherTimer timerDownloadDataMsgHidden = new DispatcherTimer();
public ObservableCollection<ParticleAnalyzerModel> ParticleModellist { get; set; } = new ObservableCollection<ParticleAnalyzerModel>();
public ObservableCollection<ParticleAnalyzerModels> ParticleModelslist { get; set; } = new ObservableCollection<ParticleAnalyzerModels>();
#endregion
ISensorService _iSensorService;
public ParticleAnalyzerViewModel(IRegionManager regionManager, ISensorService iSensorService) : base(regionManager)
{
PageTitle = "颗粒物分析仪";
_iSensorService = iSensorService;
PaginationModel.NavCommand = new DelegateCommand<object>(index =>
{
PaginationModel.PageIndex = int.Parse(index.ToString());
this.Refresh();
});
this.Refresh();
timerDownloadDataMsgHidden.Interval = TimeSpan.FromSeconds(2);
timerDownloadDataMsgHidden.Tick += TimerDownloadDataMsgHidden_Tick;
}
/// <summary>
/// 数据刷新
/// </summary>
public override void Refresh()
{
ParticleModellist.Clear();
ParticleModelslist.Clear();
ParticleModel.AreaCharts.Values.Clear();
ParticleModel.AreaCharts.X_Time.Clear();
ParticleModel.LongCharts.Values.Clear();
ParticleModel.LongCharts.X_Time.Clear();
ParticleModel.WideCharts.Values.Clear();
ParticleModel.WideCharts.X_Time.Clear();
var particaleforChart = _iSensorService.GetParticleAnalyzerData();
var particalelist = _iSensorService.GetParticleAnalyzerData(SearchKey, PaginationModel.PageSize, PaginationModel.PageIndex, out int totalCount);
///状态监控
if (particalelist.Count() != 0)
{
var data = _iSensorService.GetParticleAnalyzer().FirstOrDefault();
ParticleModel.Tem = data.Tem;
ParticleModel.Hum = data.Hum;
ParticleModel.Pressure = data.Pressure;
ParticleModel.Insulation = data.Insulation;
ParticleModel.SamplingTime = data.SamplingTime;
}
///列表清单数据
int index = 0;
foreach (var item in particalelist)
{
index++;
ParticleModellist.Add(new ParticleAnalyzerModel
{
DataIdNum = index + (PaginationModel.PageIndex - 1) * PaginationModel.PageSize,
SamplingTime = item.SamplingTime,
CreateTime = item.CreateTime,
Tem = item.Tem,
Hum = item.Hum,
Pressure = item.Pressure,
Insulation = item.Insulation,
ParticleNumber = item.ParticleNumber,
CoordinateX = item.CoordinateX,
CoordinateY = item.CoordinateY,
Type = item.Type,
Area = item.Area,
Long = item.Long,
Wide = item.Wide
});
}
///图表数据及下载
int indexm = 0;
foreach (var item in particaleforChart)
{
indexm++;
ParticleModelslist.Add(new ParticleAnalyzerModels
{
Id = indexm,
SamplingTime = item.SamplingTime,
CreateTime = item.CreateTime,
Tem = item.Tem,
Hum = item.Hum,
Pressure = item.Pressure,
Insulation = item.Insulation,
ParticleNumber = item.ParticleNumber,
CoordinateX = item.CoordinateX,
CoordinateY = item.CoordinateY,
Type = item.Type,
Area = item.Area,
Long = item.Long,
Wide = item.Wide
});
if (ParticleModel.AreaCharts.Values.Count >= Convert.ToInt32(tools.GetAppSetting("Chart_Limit")))
{
ParticleModel.AreaCharts.Values.RemoveAt(0);
ParticleModel.AreaCharts.X_Time.RemoveAt(0);
}
if (ParticleModel.LongCharts.Values.Count >= Convert.ToInt32(tools.GetAppSetting("Chart_Limit")))
{
ParticleModel.LongCharts.Values.RemoveAt(0);
ParticleModel.LongCharts.X_Time.RemoveAt(0);
}
if (ParticleModel.WideCharts.Values.Count >= Convert.ToInt32(tools.GetAppSetting("Chart_Limit")))
{
ParticleModel.WideCharts.Values.RemoveAt(0);
ParticleModel.WideCharts.X_Time.RemoveAt(0);
}
ParticleModel.AreaCharts.Values.Add(Convert.ToSingle(item.Area));
ParticleModel.AreaCharts.X_Time.Add(item.SamplingTime.ToShortTimeString());
ParticleModel.LongCharts.Values.Add(Convert.ToSingle(item.Long));
ParticleModel.LongCharts.X_Time.Add(item.SamplingTime.ToShortTimeString());
ParticleModel.WideCharts.Values.Add(Convert.ToSingle(item.Wide));
ParticleModel.WideCharts.X_Time.Add(item.SamplingTime.ToShortTimeString());
}
// 刷新分页组件的页码
PaginationModel.FillPageNumbers(totalCount);
}
/// <summary>
/// 数据下载
/// </summary>
public override void DoDownload()
{
DownloadDataBtnIsEnabled = false;
DownloadDataMsgVisibility = Visibility.Visible;
string baseStationFolder = "";
System.Windows.Forms.FolderBrowserDialog FolderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog(); //选择文件夹
//注意此处一定要手动引入System.Window.Forms空间否则你如果使用默认的DialogResult会发现没有OK属性
if (FolderBrowserDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
baseStationFolder = FolderBrowserDialog.SelectedPath + "\\";
}
//string baseStationFolder = tools.GetAppSetting("MEMSSPFolder");
string savePath = CSVDownload.CreateFile(baseStationFolder, "颗粒物分析仪_Data_" + DateTime.Now.ToString("yyyyMMddHHmmss"), "csv");
bool result = CSVDownload.SaveParticleDataToCSVFile(ParticleModelslist, savePath);
if (result)
{
DownloadDataMsg = "下载数据成功!";
DownloadDataMsgForeground = new SolidColorBrush(Colors.Green);
}
else
{
DownloadDataMsg = "下载数据失败!";
DownloadDataMsgForeground = new SolidColorBrush(Colors.Red);
}
timerDownloadDataMsgHidden.Start();
DownloadDataBtnIsEnabled = true;
}
/// <summary>
/// 定时器停止
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void TimerDownloadDataMsgHidden_Tick(object sender, EventArgs e)
{
DownloadDataMsgVisibility = Visibility.Hidden;
// 停止定时器
(sender as DispatcherTimer).Stop();
}
}
}

View File

@ -0,0 +1,106 @@
using InSituLaboratory.Entities;
using InSituLaboratory.IService;
using InSituLaboratory.Models;
using InSituLaboratory.Service;
using Microsoft.VisualBasic.ApplicationServices;
using Prism.Regions;
using Prism.Services.Dialogs;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace InSituLaboratory.ViewModels.Pages
{
public class SysDeviceViewModel : ViewModelBase
{
ISysDevcieService _isysDevcieService;
IDialogService _dialogService;
public SysDeviceViewModel(IRegionManager regionManager, ISysDevcieService sysDevcieService, IDialogService dialogService) : base(regionManager)
{
this.PageTitle = "传感器参数配置";
_isysDevcieService = sysDevcieService;
_dialogService = dialogService;
this.Refresh();
}
public ObservableCollection<SysDevicesModel> Devices { get; set; } = new ObservableCollection<SysDevicesModel>();
/// <summary>
/// 刷新
/// </summary>
public override void Refresh()
{
Devices.Clear();
var devices = _isysDevcieService.GetDevices(SearchKey).ToList();
int index = 1;
foreach (var device in devices)
{
SysDevicesModel sysDevicesModel = new SysDevicesModel
{
Index = index++,
ID = device.Id,
DeviceType = device.DeviceType,
DeviceName = device.DeviceName,
WorkTime = device.WorkTime,
MinWorkTime = device.MinWorkTime
};
Devices.Add(sysDevicesModel);
}
}
/// <summary>
/// 新增/编辑
/// </summary>
/// <param name="model"></param>
public override void DoModify(object model)
{
DialogParameters ps = new DialogParameters();
ps.Add("model", model);
_dialogService.ShowDialog("ModifySysDevicesView", ps, result =>
{
// 判断子窗口的返回状态如果OK刷新当前页面否则不管
if (result.Result == ButtonResult.OK)
{
this.Refresh();
}
});
}
/// <summary>
/// 删除
/// </summary>
/// <param name="model"></param>
public override void DoDelete(object model)
{
try
{
if (MessageBox.Show("是否确定删除此项?", "提示", MessageBoxButton.YesNo) ==
MessageBoxResult.Yes)
{
// 物理删除
_isysDevcieService.Delete<SysDevice>((model as SysDevicesModel).ID);
MessageBox.Show("删除完成!", "提示");
Devices.Remove(model as SysDevicesModel);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示");
}
}
}
}

View File

@ -12,8 +12,8 @@
FontSize="13"
Foreground="#333"
FontWeight="ExtraLight"
Background="#FAFCFF"
Title="原位实验室主控系统" Height="900" Width="1600">
Background="#14273a"
Title="原位实验室主控系统" Height="900" Width="1590">
<WindowChrome.WindowChrome>
<WindowChrome GlassFrameThickness="1"
NonClientFrameEdges="None"/>
@ -117,7 +117,7 @@
<DockPanel>
<!--左侧菜单-->
<Border BorderBrush="#EEE" BorderThickness="0,0,1,0" >
<Border BorderBrush="Gray" BorderThickness="0,0,1,0" >
<Grid Width="200" DockPanel.Dock="Left">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
@ -127,7 +127,7 @@
<StackPanel Orientation="Horizontal" Margin="0,20" HorizontalAlignment="Center">
<Image Source="/InSituLaboratory.Assets;component/Images/6604cd8ecc29d.ico" Width="36"/>
<TextBlock Text="化学生物实验室" FontSize="15" HorizontalAlignment="Center"
VerticalAlignment="Center" Foreground="#444" FontWeight="Normal" Margin="10,0"/>
VerticalAlignment="Center" Foreground="White" FontWeight="Normal" Margin="10,0"/>
</StackPanel>
<TreeView Grid.Row="1" Background="Transparent" BorderThickness="0" ItemsSource="{Binding Menus}">
@ -189,7 +189,7 @@
<ToggleButton x:Name="Expander" Grid.Column="1" ClickMode="Press"
IsChecked="{Binding IsExpanded, RelativeSource={RelativeSource TemplatedParent}}"
Template="{StaticResource ArrowButtonTemplate}"
Foreground="#4000"/>
Foreground="White"/>
<ItemsPresenter x:Name="ItemsHost" Margin="18,0,0,0" Grid.ColumnSpan="2" Grid.Row="1" />
</Grid>
@ -230,10 +230,10 @@
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding MenuIcon}"
FontFamily="{StaticResource Icons}"
FontFamily="{StaticResource Icons}" Foreground="White"
VerticalAlignment="Center" HorizontalAlignment="Center"
FontSize="15"/>
<TextBlock Text="{Binding MenuHeader}" Grid.Column="1" Margin="5,0,0,0" FontSize="15"
<TextBlock Text="{Binding MenuHeader}" Grid.Column="1" Margin="5,0,0,0" FontSize="15" Foreground="White"
VerticalAlignment="Center"/>
</Grid>
<HierarchicalDataTemplate.Triggers>
@ -259,8 +259,8 @@
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Left"
Margin="15,0">
<Run Text="原位实验室主控系统" FontSize="15" FontWeight="ExtraBold" />
<Run Text="v1.0" FontSize="13"/>
<Run Text="原位实验室主控系统" FontSize="15" FontWeight="ExtraBold" Foreground="White" />
<Run Text="v1.0" FontSize="13" Foreground="White"/>
</TextBlock>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center"
@ -276,7 +276,7 @@
<!--时间和星期-->
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Row="2" Margin="37,0" FontSize="16" FontWeight="Normal"
Foreground="#555" DataContext="{x:Static sys:DateTime.Now}" Name="txt_time">
Foreground="White" DataContext="{x:Static sys:DateTime.Now}" Name="txt_time">
<Run Text="{Binding Now,Mode=OneWay,StringFormat='yyyy年MM月dd日'}" Name="txt_date" DataContext="{x:Static sys:DateTime.Now}" />
<Run Text=" "/>
<Run Text="{Binding Now,Mode=OneWay,StringFormat='HH:mm:ss'}" />
@ -287,12 +287,12 @@
<!--消息图标-->
<TextBlock Text="&#xe7ff;" FontFamily="{StaticResource Icons}"
VerticalAlignment="Center"
FontSize="18" Foreground="#888"
FontSize="18" Foreground="White"
Margin="0,0,10,0"/>
<!--咨询图标-->
<TextBlock Text="&#xe8bd;" FontFamily="{StaticResource Icons}"
VerticalAlignment="Center"
FontSize="18" Foreground="#888"
FontSize="18" Foreground="White"
Margin="0,0,20,0"/>
<!--登录用户头像-->
<ToggleButton Width="30" Height="30" Margin="0,0,5,0"
@ -307,28 +307,28 @@
VerticalAlignment="Center"
FontSize="15" FontWeight="Normal"
Margin="0,0,10,0" Name="tbtn_user"
Height="30"
Height="30" Foreground="White"
WindowChrome.IsHitTestVisibleInChrome="True"
Style="{StaticResource UserInfoButtonStyle}"/>
<!--最小化按钮-->
<Button Content="&#xe7e6;" FontFamily="{StaticResource Icons}"
Style="{StaticResource ControlButtonStyle}" FontSize="15"
Style="{StaticResource ControlButtonStyle}" FontSize="15" Foreground="White"
Click="Button_MinClick"/>
<!--最大化按钮-->
<Button Content="&#xe694;" FontFamily="{StaticResource Icons}"
Style="{StaticResource ControlButtonStyle}" FontSize="15"
Style="{StaticResource ControlButtonStyle}" FontSize="15" Foreground="White"
Click="Button_MaxClick"/>
<!--关闭按钮-->
<Button Content="&#xe625;" FontFamily="{StaticResource Icons}"
Style="{StaticResource ControlButtonStyle}" FontSize="15"
Style="{StaticResource ControlButtonStyle}" FontSize="15" Foreground="White"
Click="Button_Click"/>
</StackPanel>
<!--更换用户头像-->
<Popup StaysOpen="False" IsOpen="{Binding ElementName=tbtn_avatar,Path=IsChecked}" PlacementTarget="{Binding ElementName=tbtn_avatar}" AllowsTransparency="True">
<Popup StaysOpen="False" IsOpen="{Binding ElementName=tbtn_avatar,Path=IsChecked}" PlacementTarget="{Binding ElementName=tbtn_avatar}" AllowsTransparency="True">
<Grid Margin="5">
<Border Width="160" Height="100" Background="#FFF" CornerRadius="5">
<Border.Effect>
@ -460,7 +460,7 @@
<RowDefinition Height="auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border Background="#FAFCFF" BorderBrush="#EEE" BorderThickness="0,1,0,0"/>
<Border Background="#14273a" BorderBrush="Gray" BorderThickness="0,1,0,0"/>
<TabPanel x:Name="HeaderPanel"
Panel.ZIndex="1"
Margin="0,3"
@ -499,7 +499,7 @@
<Style TargetType="TabItem">
<Setter Property="Header" Value="{Binding DataContext.PageTitle}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Background" Value="Gray"/>
<Setter Property="Foreground" Value="#444"/>
<Setter Property="Template">
<Setter.Value>
@ -540,7 +540,7 @@
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#EEE"/>
<Setter Property="Background" Value="white"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background">

View File

@ -6,6 +6,7 @@
xmlns:local="clr-namespace:InSituLaboratory.Views.Pages"
xmlns:converters="clr-namespace:InSituLaboratory.Base;assembly=InSituLaboratory.Base"
mc:Ignorable="d"
Background="#14273a"
FontFamily="{StaticResource DigitalDisplay}"
d:DesignHeight="700" d:DesignWidth="800">
<UserControl.Resources>
@ -70,34 +71,34 @@
<!--组包时间-->
<Grid>
<Border CornerRadius="5" Background="#FAFCFF" Margin="10">
<Border CornerRadius="5" Background="Transparent" Margin="3">
<Border.Effect>
<DropShadowEffect BlurRadius="10" ShadowDepth="0" Color="#555" Opacity="0.1"/>
</Border.Effect>
<StackPanel Margin="30,10" Orientation="Vertical" >
<TextBlock Foreground="#AAA" Margin="0,10,0,18" FontSize="12">
<TextBlock Foreground="White" Margin="0,10,0,18" FontSize="12">
<Run Text="&#xe8b8;" FontFamily="{StaticResource IconsExt}" Foreground="#088DF6" FontSize="16"/>
<Run Text="组包时间" FontSize="18"/>
<Run Text="组包时间" FontSize="18" Foreground="White"/>
</TextBlock>
<TextBlock Text="{Binding SysStatusModel.PackagingTime ,Mode=TwoWay,StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" FontSize="15" FontWeight="Normal" Foreground="#555"/>
<TextBlock Text="{Binding SysStatusModel.PackagingTime ,Mode=TwoWay,StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" FontSize="15" FontWeight="Normal" Foreground="White"/>
</StackPanel>
</Border>
</Grid>
<!--采样时间-->
<Grid Grid.Column="1">
<Border CornerRadius="5" Background="#FAFCFF" Margin="10">
<Border CornerRadius="5" Background="Transparent" Margin="3">
<Border.Effect>
<DropShadowEffect BlurRadius="10" ShadowDepth="0" Color="#555" Opacity="0.1"/>
</Border.Effect>
<StackPanel Margin="30,10" Orientation="Vertical" >
<TextBlock Foreground="#AAA" Margin="0,10,0,18" FontSize="12">
<TextBlock Foreground="White" Margin="0,10,0,18" FontSize="12">
<Run Text="&#xe8a9;" FontFamily="{StaticResource IconsExt}" Foreground="#088DF6" FontSize="18"/>
<Run Text="采样时间" FontSize="18"/>
<Run Text="采样时间" FontSize="18" Foreground="White"/>
</TextBlock>
<TextBlock Text="{Binding SysStatusModel.SamplingTime ,Mode=TwoWay,StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" FontSize="15" FontWeight="Normal" Foreground="#555"/>
<TextBlock Text="{Binding SysStatusModel.SamplingTime ,Mode=TwoWay,StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" FontSize="15" FontWeight="Normal" Foreground="White"/>
</StackPanel>
</Border>
@ -105,16 +106,16 @@
<!--48V电压-->
<Grid Grid.Column="2">
<Border CornerRadius="5" Background="#FAFCFF" Margin="10">
<Border CornerRadius="5" Background="Transparent" Margin="3">
<Border.Effect>
<DropShadowEffect BlurRadius="10" ShadowDepth="0" Color="#555" Opacity="0.1"/>
</Border.Effect>
<StackPanel Margin="30,10" Orientation="Vertical" >
<TextBlock Foreground="#AAA" Margin="0,10,0,18" FontSize="12">
<TextBlock Foreground="White" Margin="0,10,0,18" FontSize="12">
<Run Text="&#xe666;" FontFamily="{StaticResource IconsExt}" Foreground="#088DF6" FontSize="18"/>
<Run Text="48V电压" FontSize="18"/>
<Run Text="48V电压" FontSize="18" Foreground="White"/>
</TextBlock>
<TextBlock Text="{Binding SysStatusModel.Voltage48 ,Mode=TwoWay,StringFormat={}{0}V}" FontSize="15" FontWeight="Normal" Foreground="#555"/>
<TextBlock Text="{Binding SysStatusModel.Voltage48 ,Mode=TwoWay,StringFormat={}{0}V}" FontSize="15" FontWeight="Normal" Foreground="White"/>
</StackPanel>
</Border>
@ -122,34 +123,34 @@
<!--48V电流-->
<Grid Grid.Column="3">
<Border CornerRadius="5" Background="#FAFCFF" Margin="10">
<Border CornerRadius="5" Background="Transparent" Margin="3">
<Border.Effect>
<DropShadowEffect BlurRadius="10" ShadowDepth="0" Color="#555" Opacity="0.1"/>
</Border.Effect>
<StackPanel Margin="30,10" Orientation="Vertical" >
<TextBlock Foreground="#AAA" Margin="0,10,0,18" FontSize="12">
<TextBlock Foreground="White" Margin="0,10,0,18" FontSize="12">
<Run Text="&#xe665;" FontFamily="{StaticResource IconsExt}" Foreground="#088DF6" FontSize="18"/>
<Run Text="48V电流" FontSize="18"/>
<Run Text="48V电流" FontSize="18" Foreground="White"/>
</TextBlock>
<TextBlock Text="{Binding SysStatusModel.Current48 ,Mode=TwoWay,StringFormat={}{0}A}" FontSize="15" FontWeight="Normal" Foreground="#555"/>
<TextBlock Text="{Binding SysStatusModel.Current48 ,Mode=TwoWay,StringFormat={}{0}A}" FontSize="15" FontWeight="Normal" Foreground="White"/>
</StackPanel>
</Border>
</Grid>
<!--时序下配状态-->
<Grid Grid.Column="4">
<Border CornerRadius="5" Background="#FAFCFF" Margin="10">
<Border CornerRadius="5" Background="Transparent" Margin="3">
<Border.Effect>
<DropShadowEffect BlurRadius="10" ShadowDepth="0" Color="#555" Opacity="0.1"/>
</Border.Effect>
<StackPanel Margin="30,10" Orientation="Vertical" >
<TextBlock Foreground="#AAA" Margin="0,10,0,18" FontSize="12">
<TextBlock Foreground="White" Margin="0,10,0,18" FontSize="12">
<Run Text="&#xe6e4;" FontFamily="{StaticResource IconsExt}" Foreground="#088DF6" FontSize="18"/>
<Run Text="时序下配状态" FontSize="18"/>
<Run Text="时序下配状态" FontSize="18" Foreground="White"/>
</TextBlock>
<TextBlock FontSize="15" FontWeight="Normal" Foreground="#555">
<Run Text="{Binding SysStatusModel.TimeSeriesGroupNumber ,Mode=TwoWay}" />
<Run Text="{Binding SysStatusModel.GroupNumberStatus ,Mode=TwoWay}" />
<Run Text="{Binding SysStatusModel.TimeSeriesGroupNumber ,Mode=TwoWay}" Foreground="White" />
<Run Text="{Binding SysStatusModel.GroupNumberStatus ,Mode=TwoWay}" Foreground="White"/>
</TextBlock>
</StackPanel>
</Border>
@ -164,7 +165,7 @@
<!-- 主腔体状态 -->
<Grid Grid.Row="1" >
<Border CornerRadius="5" Background="#FAFCFF" Margin="10,0,10,0">
<Border CornerRadius="5" Background="#14273a" Margin="10,0,10,0">
<Border.Effect>
<DropShadowEffect BlurRadius="10" ShadowDepth="0" Color="#555" Opacity="0.1"/>
</Border.Effect>
@ -189,7 +190,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="基站48V漏电流状态" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Grid.Column="0" Text="基站48V漏电流状态" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding SysStatusModel.BaseStation48VLeakageCS, Converter={StaticResource ResourceKey=StateBackConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="2">
@ -197,7 +198,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="电池48V漏电流状态" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Grid.Column="0" Text="电池48V漏电流状态" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding SysStatusModel.Batterz48VLeakageCS, Converter={StaticResource ResourceKey=StateBackConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="3">
@ -205,7 +206,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="ICL漏电流状态" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="ICL漏电流状态" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding SysStatusModel.ICLLeakageCS, Converter={StaticResource ResourceKey=StateBackConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="4">
@ -213,7 +214,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="工控机漏电流状态" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="工控机漏电流状态" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding SysStatusModel.IComputerLeakageCS, Converter={StaticResource ResourceKey=StateBackConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -231,7 +232,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="温度1状态" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Grid.Column="0" Text="温度1状态" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding SysStatusModel.TemperatureStaus1, Converter={StaticResource ResourceKey=StateBackConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="2">
@ -239,7 +240,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="温度2状态" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Grid.Column="0" Text="温度2状态" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding SysStatusModel.TemperatureStaus2, Converter={StaticResource ResourceKey=StateBackConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="3">
@ -247,7 +248,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="湿度1状态" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="湿度1状态" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding SysStatusModel.HumidityStaus1, Converter={StaticResource ResourceKey=StateBackConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="4">
@ -255,7 +256,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="湿度2状态" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="湿度2状态" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding SysStatusModel.HumidityStaus2, Converter={StaticResource ResourceKey=StateBackConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -271,13 +272,13 @@
<Grid Grid.Row="0">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Horizontal">
<Border Width="10" Height="10" Background="Green" CornerRadius="10" />
<TextBlock Text="正常" Margin="10,5"/>
<TextBlock Text="正常" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="Yellow" CornerRadius="10" />
<TextBlock Text="一级报警" Margin="10,5"/>
<TextBlock Text="一级报警" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="Orange" CornerRadius="10" />
<TextBlock Text="二级报警" Margin="10,5"/>
<TextBlock Text="二级报警" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="red" CornerRadius="10" />
<TextBlock Text="故障" Margin="10,5"/>
<TextBlock Text="故障" Margin="10,5" Foreground="White"/>
</StackPanel>
</Grid>
<Grid Grid.Row="1">
@ -285,7 +286,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="漏水1状态" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Grid.Column="0" Text="漏水1状态" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding SysStatusModel.LeakageStaus1, Converter={StaticResource ResourceKey=StateBackConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="2">
@ -293,7 +294,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="漏水2状态" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Grid.Column="0" Text="漏水2状态" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding SysStatusModel.LeakageStaus2, Converter={StaticResource ResourceKey=StateBackConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="3">
@ -301,7 +302,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="内部压力1状态" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="内部压力1状态" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding SysStatusModel.InternalPressure1, Converter={StaticResource ResourceKey=StateBackConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="4">
@ -309,7 +310,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="内部压力2状态" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="内部压力2状态" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding SysStatusModel.InternalPressure2, Converter={StaticResource ResourceKey=StateBackConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -326,7 +327,7 @@
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0" Margin="0,14,0,-140" >
<Border CornerRadius="5" Background="#FAFCFF" Margin="10,0,10,0">
<Border CornerRadius="5" Background="#14273a" Margin="10,0,10,0">
<Border.Effect>
<DropShadowEffect BlurRadius="10" ShadowDepth="0" Color="#555" Opacity="0.1"/>
</Border.Effect>
@ -349,7 +350,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="MEMS色谱仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Grid.Column="0" Text="MEMS色谱仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding CurrentWorkEquipment.Chromatograph_MEMS, Converter={StaticResource ResourceKey=WorkStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="2">
@ -357,7 +358,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="MEMS质谱仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Grid.Column="0" Text="MEMS质谱仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding CurrentWorkEquipment.MassSpectrometer_MEMS, Converter={StaticResource ResourceKey=WorkStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="3">
@ -365,7 +366,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="色质联用仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Grid.Column="0" Text="色质联用仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White" />
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding CurrentWorkEquipment.ColorMassSpectrometer, Converter={StaticResource ResourceKey=WorkStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="4">
@ -373,7 +374,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="甲烷同位素分析仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Grid.Column="0" Text="甲烷同位素分析仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding CurrentWorkEquipment.CH4Analyzer, Converter={StaticResource ResourceKey=WorkStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -389,9 +390,9 @@
<Grid Grid.Row="0">
<StackPanel HorizontalAlignment="Right" VerticalAlignment="Center" Orientation="Horizontal" Margin="15,0">
<Border Width="10" Height="10" Background="Orange" CornerRadius="10" />
<TextBlock Text="待机" Margin="10,5"/>
<TextBlock Text="待机" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="Green" CornerRadius="10" />
<TextBlock Text="工作" Margin="10,5"/>
<TextBlock Text="工作" Margin="10,5" Foreground="White"/>
</StackPanel>
</Grid>
<Grid Grid.Row="1">
@ -399,7 +400,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="CO2同位素分析仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Grid.Column="0" Text="CO2同位素分析仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding CurrentWorkEquipment.CO2Analyzer, Converter={StaticResource ResourceKey=WorkStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="2">
@ -407,7 +408,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="颗粒物分析仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Grid.Column="0" Text="颗粒物分析仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding CurrentWorkEquipment.ParticleAnalyzer, Converter={StaticResource ResourceKey=WorkStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="3">
@ -415,7 +416,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="测序仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Grid.Column="0" Text="测序仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding CurrentWorkEquipment.Sequencer, Converter={StaticResource ResourceKey=WorkStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -425,7 +426,7 @@
</Grid>
<Grid Grid.Column="1" Margin="0,14,0,-140">
<Border CornerRadius="5" Background="#FAFCFF" Margin="10,0,10,0">
<Border CornerRadius="5" Background="#14273a" Margin="10,0,10,0">
<Border.Effect>
<DropShadowEffect BlurRadius="10" ShadowDepth="0" Color="#555" Opacity="0.1"/>
</Border.Effect>
@ -448,7 +449,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="MEMS色谱仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Grid.Column="0" Text="MEMS色谱仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding currentFaultyEquipment.Chromatograph_MEMS, Converter={StaticResource ResourceKey=FaultStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="2">
@ -456,7 +457,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="MEMS质谱仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Grid.Column="0" Text="MEMS质谱仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding currentFaultyEquipment.MassSpectrometer_MEMS, Converter={StaticResource ResourceKey=FaultStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="3">
@ -464,7 +465,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="色质联用仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Grid.Column="0" Text="色质联用仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding currentFaultyEquipment.ColorMassSpectrometer, Converter={StaticResource ResourceKey=FaultStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="4">
@ -472,7 +473,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="甲烷同位素分析仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Grid.Column="0" Text="甲烷同位素分析仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding currentFaultyEquipment.CH4Analyzer, Converter={StaticResource ResourceKey=FaultStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -488,9 +489,9 @@
<Grid Grid.Row="0">
<StackPanel HorizontalAlignment="Right" VerticalAlignment="Center" Orientation="Horizontal" Margin="15,0">
<Border Width="10" Height="10" Background="Red" CornerRadius="10" />
<TextBlock Text="故障" Margin="10,5"/>
<TextBlock Text="故障" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="Green" CornerRadius="10" />
<TextBlock Text="正常" Margin="10,5"/>
<TextBlock Text="正常" Margin="10,5" Foreground="White"/>
</StackPanel>
</Grid>
<Grid Grid.Row="1">
@ -498,7 +499,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="CO2同位素分析仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Grid.Column="0" Text="CO2同位素分析仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding currentFaultyEquipment.CO2Analyzer, Converter={StaticResource ResourceKey=FaultStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="2">
@ -506,7 +507,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="颗粒物分析仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Grid.Column="0" Text="颗粒物分析仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding currentFaultyEquipment.ParticleAnalyzer, Converter={StaticResource ResourceKey=FaultStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="3">
@ -514,7 +515,7 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="测序仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock Grid.Column="0" Text="测序仪" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding currentFaultyEquipment.Sequencer, Converter={StaticResource ResourceKey=FaultStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>

View File

@ -33,7 +33,7 @@
<TextBlock Text="设备工作时长(min)" Grid.Row="2" VerticalAlignment="Center" Foreground="#888"/>
<TextBlock Text="循环间隔时长(min)" Grid.Row="3" VerticalAlignment="Center" Foreground="#888"/>
<hc:ComboBox Grid.Row="0" Name="pb" Margin="0,9,0,8" Grid.Column="1" IsEditable="False" ItemsSource="{Binding DeviceNodes}" DisplayMemberPath="Id" SelectedValuePath="Id" SelectedValue="{Binding SequenceGroup}" RenderTransformOrigin="0.498,0.193"/>
<hc:ComboBox Grid.Row="0" Name="pb" Margin="0,9,0,8" Grid.Column="1" IsEditable="False" ItemsSource="{Binding SysNumberList}" DisplayMemberPath="Number" SelectedValuePath="Number" SelectedValue="{Binding SequenceGroup}" RenderTransformOrigin="0.498,0.193"/>
<hc:ComboBox Grid.Row="1" Margin="0,9,0,8" Grid.Column="1" IsEditable="False" ItemsSource="{Binding DeviceNodes}" DisplayMemberPath="DeviceName" SelectedValuePath="DeviceName" SelectedValue="{Binding SensorID}" RenderTransformOrigin="0.498,0.193"/>
<TextBox Grid.Row="2" Grid.Column="1" Margin="0,2" Height="30" Text="{Binding WorkTime}" Style="{StaticResource NormalTextBoxStyle}"/>
<TextBox Grid.Row="3" Grid.Column="1" Margin="0,2" Height="30" Text="{Binding DurationTime}" Style="{StaticResource NormalTextBoxStyle}"/>

View File

@ -0,0 +1,32 @@
<UserControl x:Class="InSituLaboratory.Views.Pages.Dialogs.ModifySysDevicesView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:InSituLaboratory.Views.Pages.Dialogs"
mc:Ignorable="d" Height="330" Width="420"
FontFamily="{StaticResource DigitalDisplay}"
Template="{StaticResource DialogViewTemplate}">
<Grid Margin="40,20" TextBlock.Foreground="#888" FocusManager.FocusedElement="{Binding ElementName=pb}">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Text="设备代码" VerticalAlignment="Center"/>
<TextBlock Text="设备名称" Grid.Row="1" VerticalAlignment="Center"/>
<TextBlock Text="最小工作时长/min" Grid.Row="2" VerticalAlignment="Center"/>
<TextBlock Text="单次工作最大时长/min" Grid.Row="3" VerticalAlignment="Center"/>
<TextBox Grid.Column="1" Height="30" Name="pb" Style="{StaticResource NormalTextBoxStyle}" Text="{Binding SysDevice.DeviceType}"/>
<TextBox Grid.Column="1" Grid.Row="1" Height="30" Style="{StaticResource NormalTextBoxStyle}" Text="{Binding SysDevice.DeviceName}"/>
<TextBox Grid.Column="1" Grid.Row="2" Height="30" Style="{StaticResource NormalTextBoxStyle}" Text="{Binding SysDevice.MinWorkTime}"/>
<TextBox Grid.Column="1" Grid.Row="3" Height="30" Style="{StaticResource NormalTextBoxStyle}" Text="{Binding SysDevice.WorkTime}"/>
</Grid>
</UserControl>

View File

@ -0,0 +1,28 @@
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 InSituLaboratory.Views.Pages.Dialogs
{
/// <summary>
/// ModifySysDevicesView.xaml 的交互逻辑
/// </summary>
public partial class ModifySysDevicesView : UserControl
{
public ModifySysDevicesView()
{
InitializeComponent();
}
}
}

View File

@ -5,32 +5,77 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:InSituLaboratory.Views.Pages.History"
xmlns:zxc="clr-namespace:InSituLaboratory.Controls;assembly=InSituLaboratory.Controls"
FontFamily="{StaticResource DigitalDisplay}"
FontFamily="{StaticResource DigitalDisplay}"
mc:Ignorable="d" Template="{StaticResource PageSearchTempalte}">
<UserControl.Resources>
<Style TargetType="GroupBox">
<Setter Property="Margin" Value="10,5" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GroupBox">
<Grid>
<!-- 左上角 -->
<Polyline HorizontalAlignment="Left" VerticalAlignment="Top" Points="0 30, 0 10, 10 0, 30 0" Stroke="#9918AABD" StrokeThickness="1" />
<!-- 左上角点 -->
<Ellipse Width="4" Height="4" Margin="24,-2,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Fill="#9918AABD" />
<Ellipse Width="4" Height="4" Margin="-2,24,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Fill="#9918AABD" />
<!-- 右上角 -->
<Path HorizontalAlignment="Right" VerticalAlignment="Top" Data="M0 0, 3 3, 30 3, 33 0, 68 0, 73 7,78 7, 78 10M8 0, 25 0" Stroke="#5518AABD" />
<!-- 左下角 -->
<Polyline HorizontalAlignment="Left" VerticalAlignment="Bottom" Points="0,0 0,15 10,15" Stroke="#5518AABD" />
<!-- 右下角 -->
<Polyline HorizontalAlignment="Right" VerticalAlignment="Bottom" Points="10,0 0,10" Stroke="#5518AABD" />
<!-- 右下角图标 -->
<Polygon HorizontalAlignment="Right" VerticalAlignment="Bottom" Fill="#9918AABD" Points="0,7 7 7 7 0" />
<Border Margin="30,-0.5,78,0" VerticalAlignment="Top" BorderBrush="#5518AABD" BorderThickness="0,1,0,0" />
<Border Margin="0,10" HorizontalAlignment="Right" BorderBrush="#5518AABD" BorderThickness="0,0,1,0" />
<Border Margin="10,0" VerticalAlignment="Bottom" BorderBrush="#5518AABD" BorderThickness="0,1,0,0" />
<Border Margin="-0.5,15" HorizontalAlignment="Left" BorderBrush="#5518AABD" BorderThickness="0,0,1,0" />
<!-- 箭头 -->
<Path Margin="10,13" HorizontalAlignment="Left" VerticalAlignment="Top" Data="M0 0,3 0,5 4,3 8,0 8,3 4" Fill="#9918AABD" />
<Path Margin="16,13" HorizontalAlignment="Left" VerticalAlignment="Top" Data="M0 0,3 0,5 4,3 8,0 8,3 4" Fill="#5518AABD" />
<!-- 字体 -->
<TextBlock Margin="25,8" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="#18AABD" Text="{TemplateBinding Header}" FontSize="18"/>
<!-- 占位对象 -->
<ContentPresenter />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Grid Grid.IsSharedSizeScope="True" Margin="0,5,0,10">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<Grid Grid.IsSharedSizeScope="True" Margin="10,5,9,10" Background="#14273a">
<Border CornerRadius="5">
<GroupBox>
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Hidden" x:Name="sv" CanContentScroll="False" PreviewMouseWheel="ScrollViewer_PreviewMouseWheel">
<DataGrid ItemsSource="{Binding SequentialHistortyList }" FontSize="15" FontWeight="Bold" IsReadOnly="True" >
<DataGrid.Columns>
<DataGridTextColumn Header="序号" Width="40" Binding="{Binding DataIdNum}" />
<DataGridTextColumn Header="当前时序" Width="80" Binding="{Binding Sequential}" />
<DataGridTextColumn Header="创建时间" Width="155" Binding="{Binding CreateTime,StringFormat=yyyy-MM-dd HH:mm:ss}"/>
<DataGridTextColumn Header="开始时间" Width="155" Binding="{Binding StartTime,StringFormat=yyyy-MM-dd HH:mm:ss}"/>
<DataGridTextColumn Header="结束时间" Width="155" Binding="{Binding EndTime,StringFormat=yyyy-MM-dd HH:mm:ss}"/>
<DataGridTextColumn Header="子时序号" Width="70" Binding="{Binding SequenceGroup}"/>
<DataGridTextColumn Header="设备编号" Width="170" Binding="{Binding SensorID}"/>
<DataGridTextColumn Header="设备工作时长/s" Width="110" Binding="{Binding WorkTime}"/>
<DataGridTextColumn Header="子序列循环间隔时长/s" Width="180" Binding="{Binding DurationTime}"/>
<DataGridTextColumn Header="状态" Width="100" Binding="{Binding Status}"/>
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Hidden" x:Name="sv" CanContentScroll="False" PreviewMouseWheel="ScrollViewer_PreviewMouseWheel">
<DataGrid ItemsSource="{Binding SequentialHistortyList }" FontSize="15" FontWeight="Bold" IsReadOnly="True" >
<DataGrid.Columns>
<DataGridTextColumn Header="序号" Width="60" Binding="{Binding DataIdNum}" Foreground="White"/>
<DataGridTextColumn Header="当前时序" Width="100" Binding="{Binding Sequential}" Foreground="White"/>
<DataGridTextColumn Header="创建时间" Width="170" Binding="{Binding CreateTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Foreground="White"/>
<DataGridTextColumn Header="开始时间" Width="170" Binding="{Binding StartTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Foreground="White"/>
<DataGridTextColumn Header="结束时间" Width="170" Binding="{Binding EndTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Foreground="White"/>
<DataGridTextColumn Header="子时序号" Width="70" Binding="{Binding SequenceGroup}" Foreground="White"/>
<DataGridTextColumn Header="设备编号" Width="188" Binding="{Binding SensorID}" Foreground="White"/>
<DataGridTextColumn Header="设备工作时长/s" Width="110" Binding="{Binding WorkTime}" Foreground="White"/>
<DataGridTextColumn Header="子序列循环间隔时长/s" Width="200" Binding="{Binding DurationTime}" Foreground="White"/>
<DataGridTextColumn Header="状态" Width="110" Binding="{Binding Status}" Foreground="White"/>
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
<zxc:Pagination DataContext="{Binding PaginationModel}" Grid.Row="2" HorizontalAlignment="Center"/>
<zxc:Pagination DataContext="{Binding PaginationModel}" Grid.Row="2" HorizontalAlignment="Center"/>
</Grid>
</GroupBox>
</Border>
</Grid>
</UserControl>

View File

@ -7,169 +7,213 @@
mc:Ignorable="d" Template="{StaticResource PageTempalte}"
FontFamily="{StaticResource DigitalDisplay}"
d:DesignHeight="450" d:DesignWidth="800">
<Grid Grid.IsSharedSizeScope="True" Margin="0,5,0,10">
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition/>
</Grid.RowDefinitions>
<UserControl.Resources>
<Style TargetType="GroupBox">
<Setter Property="Margin" Value="10,5" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GroupBox">
<Grid>
<!-- 左上角 -->
<Polyline HorizontalAlignment="Left" VerticalAlignment="Top" Points="0 30, 0 10, 10 0, 30 0" Stroke="#9918AABD" StrokeThickness="1" />
<!-- 左上角点 -->
<Ellipse Width="4" Height="4" Margin="24,-2,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Fill="#9918AABD" />
<Ellipse Width="4" Height="4" Margin="-2,24,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Fill="#9918AABD" />
<!-- 右上角 -->
<Path HorizontalAlignment="Right" VerticalAlignment="Top" Data="M0 0, 3 3, 30 3, 33 0, 68 0, 73 7,78 7, 78 10M8 0, 25 0" Stroke="#5518AABD" />
<!-- 左下角 -->
<Polyline HorizontalAlignment="Left" VerticalAlignment="Bottom" Points="0,0 0,15 10,15" Stroke="#5518AABD" />
<!-- 右下角 -->
<Polyline HorizontalAlignment="Right" VerticalAlignment="Bottom" Points="10,0 0,10" Stroke="#5518AABD" />
<!-- 右下角图标 -->
<Polygon HorizontalAlignment="Right" VerticalAlignment="Bottom" Fill="#9918AABD" Points="0,7 7 7 7 0" />
<Border Background="#F7F9FA" Height="1" VerticalAlignment="Bottom"/>
<Grid TextBlock.FontSize="15" TextBlock.FontWeight="Bold" TextBlock.Foreground="#666">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="*" SharedSizeGroup="column1"/>
<ColumnDefinition Width="150"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<TextBlock Text="菜单名称" VerticalAlignment="Center" Grid.Column="1"/>
<TextBlock Text="目标视图" VerticalAlignment="Center" HorizontalAlignment="Left" Grid.Column="2"/>
<TextBlock Text="图标" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="3"/>
<TextBlock Text="操作" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="4"/>
</Grid>
<TreeView Grid.Row="1" ItemsSource="{Binding Menus}" BorderThickness="0"
Background="Transparent">
<TreeView.Resources>
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="{Binding IsExpanded,Mode=TwoWay}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeViewItem">
<Grid Background="Transparent" Name="root" AllowDrop="True">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition MaxWidth="30"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" MinHeight="33"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Border Margin="30,-0.5,78,0" VerticalAlignment="Top" BorderBrush="#5518AABD" BorderThickness="0,1,0,0" />
<Border Margin="0,10" HorizontalAlignment="Right" BorderBrush="#5518AABD" BorderThickness="0,0,1,0" />
<Border Margin="10,0" VerticalAlignment="Bottom" BorderBrush="#5518AABD" BorderThickness="0,1,0,0" />
<Border Margin="-0.5,15" HorizontalAlignment="Left" BorderBrush="#5518AABD" BorderThickness="0,0,1,0" />
<Border Height="1" BorderThickness="0,0,0,1" BorderBrush="LightGray"
<!-- 箭头 -->
<Path Margin="10,13" HorizontalAlignment="Left" VerticalAlignment="Top" Data="M0 0,3 0,5 4,3 8,0 8,3 4" Fill="#9918AABD" />
<Path Margin="16,13" HorizontalAlignment="Left" VerticalAlignment="Top" Data="M0 0,3 0,5 4,3 8,0 8,3 4" Fill="#5518AABD" />
<!-- 字体 -->
<TextBlock Margin="25,8" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="#18AABD" Text="{TemplateBinding Header}" FontSize="18"/>
<!-- 占位对象 -->
<ContentPresenter />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Border CornerRadius="5" Background="#14273a" Margin="10,5,10,10">
<GroupBox>
<Grid Grid.IsSharedSizeScope="True" Margin="10,5,10,10">
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border Background="#F7F9FA" Height="1" VerticalAlignment="Bottom"/>
<Grid TextBlock.FontSize="15" TextBlock.FontWeight="Bold" TextBlock.Foreground="White" Background="#14273a">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="*" SharedSizeGroup="column1"/>
<ColumnDefinition Width="150"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<TextBlock Text="菜单名称" VerticalAlignment="Center" Grid.Column="1"/>
<TextBlock Text="目标视图" VerticalAlignment="Center" HorizontalAlignment="Left" Grid.Column="2"/>
<TextBlock Text="图标" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="3"/>
<TextBlock Text="操作" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="4"/>
</Grid>
<TreeView Grid.Row="1" ItemsSource="{Binding Menus}" BorderThickness="0"
Background="#14273a">
<TreeView.Resources>
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="{Binding IsExpanded,Mode=TwoWay}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeViewItem">
<Grid Background="Transparent" Name="root" AllowDrop="True">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition MaxWidth="30"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" MinHeight="33"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Border Height="1" BorderThickness="0,0,0,1" BorderBrush="LightGray"
HorizontalAlignment="Left" Width="20" VerticalAlignment="Center"
Name="borH"/>
<Grid HorizontalAlignment="Left" Name="canvas" Grid.RowSpan="2">
<Border Width="1" BorderBrush="LightGray" BorderThickness="1,0,0,0"
<Grid HorizontalAlignment="Left" Name="canvas" Grid.RowSpan="2">
<Border Width="1" BorderBrush="LightGray" BorderThickness="1,0,0,0"
HorizontalAlignment="Left" Name="borV" />
</Grid>
</Grid>
<Border Grid.ColumnSpan="2" Name="border" Background="Transparent">
<Border.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard>
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)">
<DiscreteObjectKeyFrame KeyTime="0:0:0">
<DiscreteObjectKeyFrame.Value>
<Color>#09000000</Color>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="MouseLeave">
<BeginStoryboard>
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)">
<DiscreteObjectKeyFrame KeyTime="0:0:0">
<DiscreteObjectKeyFrame.Value>
<Color>Transparent</Color>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Border.Triggers>
<Border Name="header_background">
<ContentPresenter x:Name="PART_Header" ContentSource="Header"/>
</Border>
</Border>
<Border Grid.ColumnSpan="2" Name="border" Background="Transparent">
<Border.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard>
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)">
<DiscreteObjectKeyFrame KeyTime="0:0:0">
<DiscreteObjectKeyFrame.Value>
<Color>#09000000</Color>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="MouseLeave">
<BeginStoryboard>
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)">
<DiscreteObjectKeyFrame KeyTime="0:0:0">
<DiscreteObjectKeyFrame.Value>
<Color>Transparent</Color>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Border.Triggers>
<Border Name="header_background">
<ContentPresenter x:Name="PART_Header" ContentSource="Header"/>
</Border>
</Border>
<ItemsPresenter x:Name="ItemsHost" Grid.Row="1" Grid.ColumnSpan="2"
<ItemsPresenter x:Name="ItemsHost" Grid.Row="1" Grid.ColumnSpan="2"
Margin="20,0,0,0"/>
</Grid>
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding ParentId}" Value="0">
<Setter TargetName="borH" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="borV" Property="Visibility" Value="Collapsed"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsLastChild}" Value="True">
<Setter TargetName="borV" Property="Margin" Value="0,0,0,17"/>
</DataTrigger>
<Trigger Property="IsExpanded" Value="False">
<Setter TargetName="ItemsHost" Property="Visibility" Value="Collapsed"/>
</Trigger>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding ParentId}" Value="0">
<Setter TargetName="borH" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="borV" Property="Visibility" Value="Collapsed"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsLastChild}" Value="True">
<Setter TargetName="borV" Property="Margin" Value="0,0,0,17"/>
</DataTrigger>
<Trigger Property="IsExpanded" Value="False">
<Setter TargetName="ItemsHost" Property="Visibility" Value="Collapsed"/>
</Trigger>
<!--<Trigger Property="IsMouseOver" Value="True">
<!--<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="Background" Value="#1000"/>
</Trigger>-->
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="header_background" Property="Background" Value="#11409EFE">
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="header_background" Property="Background" Value="#11409EFE">
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<ControlTemplate TargetType="ToggleButton" x:Key="ExpandeButtonTemplate">
<Border Background="#409EFE" CornerRadius="3" Width="15" Height="15">
<Path Data="M0 4 8 4M4 0 4 8" Stroke="White" StrokeThickness="1" Name="path"
<ControlTemplate TargetType="ToggleButton" x:Key="ExpandeButtonTemplate">
<Border Background="#409EFE" CornerRadius="3" Width="15" Height="15">
<Path Data="M0 4 8 4M4 0 4 8" Stroke="White" StrokeThickness="1" Name="path"
VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Border>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Data" Value="M0 0 8 0" TargetName="path"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</TreeView.Resources>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Data" Value="M0 0 8 0" TargetName="path"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</TreeView.Resources>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<Grid Name="root" Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="*" SharedSizeGroup="column1"/>
<ColumnDefinition Width="150"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<ToggleButton IsChecked="{Binding IsExpanded}"
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<Grid Name="root" Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="*" SharedSizeGroup="column1"/>
<ColumnDefinition Width="150"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<ToggleButton IsChecked="{Binding IsExpanded}"
Name="expandBox" Width="15" Height="15"
Template="{StaticResource ExpandeButtonTemplate}"/>
<TextBlock Text="{Binding MenuHeader}" VerticalAlignment="Center" Grid.Column="1" FontSize="15"/>
<TextBlock Text="{Binding TargetView}" VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="15"
Grid.Column="2" />
<TextBlock Text="{Binding MenuIcon}" VerticalAlignment="Center" HorizontalAlignment="Center"
Grid.Column="3" FontFamily="{StaticResource Icons}" FontSize="16"/>
<TextBlock Text="{Binding MenuHeader}" VerticalAlignment="Center" Grid.Column="1" FontSize="15" Foreground="white"/>
<TextBlock Text="{Binding TargetView}" VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="15"
Grid.Column="2" Foreground="white"/>
<TextBlock Text="{Binding MenuIcon}" VerticalAlignment="Center" HorizontalAlignment="Center"
Grid.Column="3" FontFamily="{StaticResource Icons}" FontSize="16" Foreground="white"/>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center"
<StackPanel Orientation="Horizontal" VerticalAlignment="Center"
HorizontalAlignment="Center" Grid.Column="4"
Name="operationPanel">
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,0,3,0" >
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,0,3,0" >
<Hyperlink Command="{Binding DataContext.ModifyCommand,RelativeSource={RelativeSource AncestorType=UserControl}}" FontSize="15"
CommandParameter="{Binding}">编辑</Hyperlink>
</TextBlock>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Margin="3,0,0,0">
CommandParameter="{Binding}" Foreground="#E0FFFF">编辑</Hyperlink>
</TextBlock>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Margin="3,0,0,0">
<Hyperlink Command="{Binding DataContext.DeleteCommand,RelativeSource={RelativeSource AncestorType=UserControl}}" FontSize="15"
CommandParameter="{Binding}">删除</Hyperlink>
</TextBlock>
</StackPanel>
</Grid>
<HierarchicalDataTemplate.Triggers>
<DataTrigger Binding="{Binding Children.Count}" Value="0">
<Setter TargetName="expandBox" Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Grid>
CommandParameter="{Binding}" Foreground="#E0FFFF">删除</Hyperlink>
</TextBlock>
</StackPanel>
</Grid>
<HierarchicalDataTemplate.Triggers>
<DataTrigger Binding="{Binding Children.Count}" Value="0">
<Setter TargetName="expandBox" Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Grid>
</GroupBox>
</Border>
</UserControl>

View File

@ -8,6 +8,7 @@
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:InSituLaboratory.Views.Pages"
mc:Ignorable="d"
Background="#14273a"
FontFamily="{StaticResource DigitalDisplay}">
<UserControl.Resources>
<converters:NegateConverter x:Key="NegateConverter" />
@ -58,7 +59,7 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TextBox">
<Border BorderBrush="#DDD" BorderThickness="0,0,0,1" Name="border" Background="White">
<Border BorderBrush="#DDD" BorderThickness="0,0,0,1" Name="border" Background="Transparent">
<Grid>
<TextBlock VerticalAlignment="Center" Foreground="#DDD" Name="markText" Visibility="Collapsed" FontSize="12" Margin="3,0"/>
<ScrollViewer x:Name="PART_ContentHost" Focusable="false" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden" VerticalAlignment="Center" MinHeight="20"/>
@ -80,7 +81,7 @@
</Setter>
</Style>
</UserControl.Resources>
<Grid Background="#FAFCFF" Margin="15">
<Grid Background="#14273a" Margin="15">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition/>
@ -107,15 +108,15 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Text="IP地址:" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
<TextBox Grid.Column="1" Width="150" VerticalAlignment="Center" FontSize="16" Text="{Binding SocketInfo.IP }" Foreground="#CD9B9B"/>
<TextBlock Text="IP地址:" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17" Foreground="White"/>
<TextBox Grid.Column="1" Width="150" VerticalAlignment="Center" FontSize="16" Text="{Binding SocketInfo.IP }" Foreground="#CD9B9B"/>
</Grid>
<Grid Grid.Column="1">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Text="端口号:" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
<TextBlock Text="端口号:" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17" Foreground="White"/>
<TextBox Grid.Column="1" Width="150" VerticalAlignment="Center" FontSize="16" Text="{Binding SocketInfo.Port}" Margin="10,0" Foreground="#CD9B9B" />
</Grid>
<Button Grid.Column="2" Content="{Binding SocketInfo.ConnectionMessage }" Style="{StaticResource NormalButtonStyle}" Width="120" Height="30" Command="{Binding ConnectionCommand}"/>
@ -159,7 +160,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="17" Text="工控机:" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock FontSize="17" Text="工控机:" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" HorizontalAlignment="Center" VerticalAlignment="Center" CornerRadius="10" Background="{Binding sysSensorModels.InComputer, Converter={StaticResource ResourceKey=RelayStateConvert}}" />
<Button Grid.Column="2" Name="InComputer" Content="打开" Width="60" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource NormalButtonStyle}" Command="{Binding RelayCommand}" >
<Button.CommandParameter>
@ -189,7 +190,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="17" Text="色质联用:" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock FontSize="17" Text="色质联用:" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Width="20" Height="20" CornerRadius="10" Background="{Binding sysSensorModels.CMSpectrometry, Converter={StaticResource ResourceKey=RelayStateConvert}}" />
<Button Grid.Column="2" x:Name="CMSpectrometry" Content="打开" Width="60" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource NormalButtonStyle}" Command="{Binding RelayCommand}" >
<Button.CommandParameter>
@ -219,7 +220,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="17" Text="备用串口1:" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock FontSize="17" Text="备用串口1:" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White" />
<Border Grid.Column="1" Width="20" Height="20" HorizontalAlignment="Center" VerticalAlignment="Center" CornerRadius="10" Background="{Binding sysSensorModels.Light1, Converter={StaticResource ResourceKey=RelayStateConvert}}" />
<Button Grid.Column="2" x:Name="Light1" Content="打开" Width="60" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource NormalButtonStyle}" Command="{Binding RelayCommand}" >
<Button.CommandParameter>
@ -257,7 +258,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="17" Text="备用串口2:" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock FontSize="17" Text="备用串口2:" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White" />
<Border Grid.Column="1" Width="20" Height="20" HorizontalAlignment="Center" VerticalAlignment="Center" CornerRadius="10" Background="{Binding sysSensorModels.Light2, Converter={StaticResource ResourceKey=RelayStateConvert}}" />
<Button Grid.Column="2" x:Name="Light2" Content="打开" Width="60" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource NormalButtonStyle}" Command="{Binding RelayCommand}" >
<Button.CommandParameter>
@ -288,7 +289,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="17" Text="光通讯机:" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock FontSize="17" Text="光通讯机:" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" Background="{Binding sysSensorModels.LightMachine, Converter={StaticResource ResourceKey=RelayStateConvert}}" />
<Button Grid.Column="2" x:Name="LightMachine" Content="打开" Width="60" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource NormalButtonStyle}" Command="{Binding RelayCommand}">
<Button.CommandParameter>
@ -319,7 +320,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="17" Text="ADCP:" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock FontSize="17" Text="ADCP:" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" CornerRadius="10" Background="{Binding sysSensorModels.ADCP, Converter={StaticResource ResourceKey=RelayStateConvert}}" />
<Button Grid.Column="2" x:Name="ADCP" Content="打开" Width="60" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource NormalButtonStyle}" Command="{Binding RelayCommand}" >
<Button.CommandParameter>
@ -358,7 +359,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="17" Text="CTD:" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock FontSize="17" Text="CTD:" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" CornerRadius="10" Background="{Binding sysSensorModels.CTD, Converter={StaticResource ResourceKey=RelayStateConvert}}" />
<Button Grid.Column="2" x:Name="CTD" Content="打开" Width="60" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource NormalButtonStyle}" Command="{Binding RelayCommand}" >
<Button.CommandParameter>
@ -388,7 +389,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="17" Text="气相色谱仪:" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock FontSize="17" Text="气相色谱仪:" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" CornerRadius="10" Background="{Binding sysSensorModels.SP, Converter={StaticResource ResourceKey=RelayStateConvert}}" />
<Button Grid.Column="2" x:Name="SP" Content="打开" Width="60" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource NormalButtonStyle}" Command="{Binding RelayCommand}" >
<Button.CommandParameter>
@ -418,7 +419,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="17" Text="声学定位:" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock FontSize="17" Text="声学定位:" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" CornerRadius="10" Background="{Binding sysSensorModels.AcousticPositioning, Converter={StaticResource ResourceKey=RelayStateConvert}}" />
<Button Grid.Column="2" x:Name="AcousticPositioning" Content="打开" Width="60" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource NormalButtonStyle}" Command="{Binding RelayCommand}" >
<Button.CommandParameter>
@ -457,7 +458,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="17" Text="CO2同位素:" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock FontSize="17" Text="CO2同位素:" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" CornerRadius="10" Background="{Binding sysSensorModels.CO2, Converter={StaticResource ResourceKey=RelayStateConvert}}" />
<Button Grid.Column="2" x:Name="CO2" Content="打开" Width="60" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource NormalButtonStyle}" Command="{Binding RelayCommand }">
<Button.CommandParameter>
@ -488,7 +489,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="17" Text="质谱仪:" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock FontSize="17" Text="质谱仪:" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" CornerRadius="10" Background="{Binding sysSensorModels.ZP , Converter={StaticResource ResourceKey=RelayStateConvert}}" />
<Button Grid.Column="2" x:Name="ZP" Content="打开" Width="60" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource NormalButtonStyle}" Command="{Binding RelayCommand}" >
<Button.CommandParameter>
@ -520,7 +521,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="17" Text="甲烷传感器:" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock FontSize="17" Text="甲烷传感器:" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" CornerRadius="10" Background="{Binding sysSensorModels.CH4, Converter={StaticResource ResourceKey=RelayStateConvert}}" />
<Button Grid.Column="2" x:Name="CH4" Content="打开" Width="60" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource NormalButtonStyle}" Command="{Binding RelayCommand}" >
<Button.CommandParameter>
@ -558,7 +559,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="17" Text="显微拉曼:" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock FontSize="17" Text="显微拉曼:" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" CornerRadius="10" Background="{Binding sysSensorModels.RamanAnalyzer, Converter={StaticResource ResourceKey=RelayStateConvert}}" />
<Button Grid.Column="2" x:Name="RamanAnalyzer" Content="打开" Width="60" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource NormalButtonStyle}" Command="{Binding RelayCommand}" >
<Button.CommandParameter>
@ -589,7 +590,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="17" Text="备用网口:" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock FontSize="17" Text="备用网口:" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" CornerRadius="10" Background="{Binding sysSensorModels.NetEquipment, Converter={StaticResource ResourceKey=RelayStateConvert}}" />
<Button Grid.Column="2" x:Name="NetEquipment" Content="打开" Width="60" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource NormalButtonStyle}" Command="{Binding RelayCommand}">
<Button.CommandParameter>
@ -620,7 +621,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="17" Text="ICL:" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock FontSize="17" Text="ICL:" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" CornerRadius="10" Background="{Binding sysSensorModels.SerialPortServer, Converter={StaticResource ResourceKey=RelayStateConvert}}" />
<Button Grid.Column="2" x:Name="SerialPortServer" Content="打开" Width="60" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource NormalButtonStyle}" Command="{Binding RelayCommand}" >
<Button.CommandParameter>
@ -659,7 +660,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="17" Text="摄像1:" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock FontSize="17" Text="摄像1:" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" CornerRadius="10" Background="{Binding sysSensorModels.Camera1, Converter={StaticResource ResourceKey=RelayStateConvert}}" />
<Button Grid.Column="2" x:Name="Camera1" Content="打开" Width="60" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource NormalButtonStyle}" Command="{Binding RelayCommand}" >
<Button.CommandParameter>
@ -690,7 +691,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="17" Text="摄像2:" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBlock FontSize="17" Text="摄像2:" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" CornerRadius="10" Background="{Binding sysSensorModels.Camera2, Converter={StaticResource ResourceKey=RelayStateConvert}}" />
<Button Grid.Column="2" x:Name="Camera2" Content="打开" Width="60" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource NormalButtonStyle}" Command="{Binding RelayCommand}" >
<Button.CommandParameter>
@ -721,7 +722,7 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="17" Text="电交换机2:" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock FontSize="17" Text="电交换机2:" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" CornerRadius="10" Background="{Binding sysSensorModels.ElectricSwitch2, Converter={StaticResource ResourceKey=RelayStateConvert}}" />
<Button Grid.Column="2" x:Name="ElectricSwitch2" Content="打开" Width="60" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource NormalButtonStyle}" Command="{Binding RelayCommand }">
<Button.CommandParameter>
@ -761,11 +762,11 @@
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Hidden" x:Name="sv" CanContentScroll="False" PreviewMouseWheel="ScrollViewer_PreviewMouseWheel">
<DataGrid ItemsSource="{Binding loglist }" FontSize="15" FontWeight="Bold" IsReadOnly="True">
<DataGrid ItemsSource="{Binding loglist }" FontSize="15" FontWeight="Bold" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="序号" Width="60" Binding="{Binding DataIdNum}" />
<DataGridTextColumn Header="记录时间" Width="170" Binding="{Binding CreateTime,StringFormat=yyyy-MM-dd HH:mm:ss}"/>
<DataGridTextColumn Header="记录内容" Width="200" Binding="{Binding Remark}" />
<DataGridTextColumn Header="序号" Width="60" Binding="{Binding DataIdNum}" Foreground="White"/>
<DataGridTextColumn Header="记录时间" Width="170" Binding="{Binding CreateTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Foreground="White"/>
<DataGridTextColumn Header="记录内容" Width="200" Binding="{Binding Remark}" Foreground="White"/>
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>

View File

@ -105,201 +105,241 @@
</Setter>
</Style>
<Style TargetType="GroupBox">
<Setter Property="Margin" Value="10,5" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GroupBox">
<Grid>
<!-- 左上角 -->
<Polyline HorizontalAlignment="Left" VerticalAlignment="Top" Points="0 30, 0 10, 10 0, 30 0" Stroke="#9918AABD" StrokeThickness="1" />
<!-- 左上角点 -->
<Ellipse Width="4" Height="4" Margin="24,-2,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Fill="#9918AABD" />
<Ellipse Width="4" Height="4" Margin="-2,24,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Fill="#9918AABD" />
<!-- 右上角 -->
<Path HorizontalAlignment="Right" VerticalAlignment="Top" Data="M0 0, 3 3, 30 3, 33 0, 68 0, 73 7,78 7, 78 10M8 0, 25 0" Stroke="#5518AABD" />
<!-- 左下角 -->
<Polyline HorizontalAlignment="Left" VerticalAlignment="Bottom" Points="0,0 0,15 10,15" Stroke="#5518AABD" />
<!-- 右下角 -->
<Polyline HorizontalAlignment="Right" VerticalAlignment="Bottom" Points="10,0 0,10" Stroke="#5518AABD" />
<!-- 右下角图标 -->
<Polygon HorizontalAlignment="Right" VerticalAlignment="Bottom" Fill="#9918AABD" Points="0,7 7 7 7 0" />
<Border Margin="30,-0.5,78,0" VerticalAlignment="Top" BorderBrush="#5518AABD" BorderThickness="0,1,0,0" />
<Border Margin="0,10" HorizontalAlignment="Right" BorderBrush="#5518AABD" BorderThickness="0,0,1,0" />
<Border Margin="10,0" VerticalAlignment="Bottom" BorderBrush="#5518AABD" BorderThickness="0,1,0,0" />
<Border Margin="-0.5,15" HorizontalAlignment="Left" BorderBrush="#5518AABD" BorderThickness="0,0,1,0" />
<!-- 箭头 -->
<Path Margin="10,13" HorizontalAlignment="Left" VerticalAlignment="Top" Data="M0 0,3 0,5 4,3 8,0 8,3 4" Fill="#9918AABD" />
<Path Margin="16,13" HorizontalAlignment="Left" VerticalAlignment="Top" Data="M0 0,3 0,5 4,3 8,0 8,3 4" Fill="#5518AABD" />
<!-- 字体 -->
<TextBlock Margin="25,8" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="#18AABD" Text="{TemplateBinding Header}" FontSize="18"/>
<!-- 占位对象 -->
<ContentPresenter />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="280"/>
<ColumnDefinition Width="auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Border CornerRadius="5" Background="#14273a" Margin="10,5,10,10">
<GroupBox>
<Grid Margin="10,5,10,10" Background="#14273a">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="280"/>
<ColumnDefinition Width="auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Border Width="1" Grid.Column="1">
<Border.Background>
<RadialGradientBrush>
<GradientStop Color="#DDD" Offset="0.5"/>
<GradientStop Color="Transparent" Offset="1.1"/>
</RadialGradientBrush>
</Border.Background>
</Border>
<Border Width="1" Grid.Column="1">
<Border.Background>
<RadialGradientBrush>
<GradientStop Color="#DDD" Offset="0.5"/>
<GradientStop Color="Transparent" Offset="1.1"/>
</RadialGradientBrush>
</Border.Background>
</Border>
<!--角色列表-->
<ListBox ItemsSource="{Binding RoleList}" FontSize="15" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Margin="5,10" BorderThickness="0" SelectedItem="{Binding CurrentRole}">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Grid Background="Transparent">
<Border Height="1" Background="#EEE" VerticalAlignment="Bottom"
Margin="3,1"/>
<Border BorderThickness="3,0,0,0" Name="border" Margin="0,2"
Background="Transparent" CornerRadius="3">
<ContentPresenter/>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="Background" Value="#F7F9FA"/>
<Setter TargetName="border" Property="BorderBrush" Value="#F7F9FA"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="border" Property="Background" Value="#F7F9FA"/>
<Setter TargetName="border" Property="BorderBrush" Value="#FE582D"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid TextBlock.Foreground="#666">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="70"/>
</Grid.ColumnDefinitions>
<Border Width="1" Background="#EEE" HorizontalAlignment="Right" Grid.RowSpan="2" Margin="0,10"/>
<!--角色列表-->
<ListBox ItemsSource="{Binding RoleList}" FontSize="15" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Background="#14273a" Margin="5,10" BorderThickness="0" SelectedItem="{Binding CurrentRole}">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Grid Background="Transparent">
<Border Height="1" Background="#EEE" VerticalAlignment="Bottom"
Margin="3,1"/>
<Border BorderThickness="3,0,0,0" Name="border" Margin="0,2"
Background="Transparent" CornerRadius="3">
<ContentPresenter/>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="Background" Value="gray"/>
<Setter TargetName="border" Property="BorderBrush" Value="gray"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="border" Property="Background" Value="gray"/>
<Setter TargetName="border" Property="BorderBrush" Value="#FE582D"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid TextBlock.Foreground="#666">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="70"/>
</Grid.ColumnDefinitions>
<Border Width="1" Background="#EEE" HorizontalAlignment="Right" Grid.RowSpan="2" Margin="0,10"/>
<TextBlock Text="{Binding RoleName}" FontWeight="Bold" Margin="5,8"/>
<TextBlock Text="{Binding RoleDesc}" Grid.Row="1" TextTrimming="CharacterEllipsis"
Margin="5,0,5,5" ToolTip="{Binding RoleDesc}"
Foreground="#999"/>
<TextBlock Text="{Binding RoleName}" FontWeight="Bold" Margin="5,8" Foreground="white"/>
<TextBlock Text="{Binding RoleDesc}" Grid.Row="1" TextTrimming="CharacterEllipsis"
Margin="5,0,5,5" ToolTip="{Binding RoleDesc}"
Foreground="white"/>
<TextBlock Grid.Column="1" Grid.RowSpan="2" Foreground="#409EFE"
VerticalAlignment="Center" HorizontalAlignment="Center">
<TextBlock Grid.Column="1" Grid.RowSpan="2" Foreground="#409EFE" VerticalAlignment="Center" HorizontalAlignment="Center">
<Hyperlink TextDecorations="None"
Command="{Binding DataContext.ModifyCommand,RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}">编辑</Hyperlink>
CommandParameter="{Binding}" Foreground="#E0FFFF">编辑</Hyperlink>
<Hyperlink TextDecorations="None"
Command="{Binding DataContext.DeleteCommand,RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}">删除</Hyperlink>
</TextBlock>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Grid Grid.Column="2">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<!--选择权限组信息-->
<StackPanel Margin="5,10" DataContext="{Binding CurrentRole}">
<TextBlock Text="{Binding RoleName}" Margin="5" FontWeight="Bold" Foreground="#666" FontSize="15"/>
<TextBlock Text="{Binding RoleDesc}" Margin="5,3" Foreground="#999" FontSize="14"/>
</StackPanel>
<!--选择用户-->
<Button Content="选择用户" VerticalAlignment="Center" HorizontalAlignment="Right"
Grid.Column="1" Style="{StaticResource NormalButtonStyle}"
Padding="10,0" Margin="5,0" Height="30"
Command="{Binding SelectUserCommand}"/>
<!--菜单选项-->
<Border Background="#F0F6FB" Grid.Row="1" Height="26" Margin="5,0" CornerRadius="5,5,0,0" BorderThickness="0,0,0,1" BorderBrush="#409EFE">
<TextBlock Text="菜单选项" VerticalAlignment="Center" Margin="10,0" Foreground="Gray" FontSize="15"/>
</Border>
<!--用户选项-->
<Border Background="#F0F6FB" Grid.Row="1" Grid.Column="1" Height="26" Margin="5,0" CornerRadius="5,5,0,0" BorderThickness="0,0,0,1" BorderBrush="#409EFE">
<TextBlock Text="用户选项" VerticalAlignment="Center" Margin="10,0" Foreground="Gray" FontSize="15"/>
</Border>
<!--绑定菜单-->
<TreeView ItemsSource="{Binding Menus}" FontSize="15" Grid.Row="2" Margin="5,0,5,10" BorderThickness="0" Background="Transparent">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<Grid Height="26">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" MinWidth="2"/>
<ColumnDefinition Width="auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<ToggleButton IsChecked="{Binding IsExpanded}"
Margin="3,0" Name="expandBox" Width="15" Height="15"
Template="{StaticResource ExpandeButtonTemplate}"/>
<CheckBox IsChecked="{Binding IsSelected}" Grid.Column="1" Margin="5,0"
HorizontalAlignment="Center" VerticalAlignment="Center"
Command="{Binding DataContext.SelectMenuCommand,RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}">
</CheckBox>
<TextBlock Text="{Binding MenuHeader}" Grid.Column="2" VerticalAlignment="Center"/>
</Grid>
<HierarchicalDataTemplate.Triggers>
<DataTrigger Binding="{Binding Children.Count}" Value="0">
<Setter TargetName="expandBox" Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
<!--绑定用户-->
<ListBox ItemsSource="{Binding Users}" FontSize="15" Grid.Column="1" Grid.Row="2" Margin="5,3" VerticalAlignment="Top" BorderThickness="0">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<ContentPresenter/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="2"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Border Background="Transparent" Name="border" Margin="5" CornerRadius="5">
<Grid Height="40">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition/>
<ColumnDefinition Width="30"/>
</Grid.ColumnDefinitions>
<Border CornerRadius="5" Width="30" Height="30" Margin="5,0">
<Border.Background>
<ImageBrush ImageSource="{Binding UserIcon}"/>
</Border.Background>
</Border>
<TextBlock Text="{Binding RealName}" Grid.Column="1" VerticalAlignment="Center"/>
<Border Width="1" Height="15" Background="#DDD" Grid.Column="1" HorizontalAlignment="Right"/>
<Button Content="&#xe625;" Grid.Column="2" Style="{StaticResource IconButtonStyle}"
Width="24" Height="24" Background="Transparent" Foreground="#666"
FontSize="10"
Command="{Binding DataContext.DeleteUserCommand,RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}"/>
CommandParameter="{Binding}" Foreground="#E0FFFF">删除</Hyperlink>
</TextBlock>
</Grid>
</Border>
<DataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="Background" Value="#F7F9FA"/>
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Grid Grid.Column="2">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<!--选择权限组信息-->
<StackPanel Margin="5,10" DataContext="{Binding CurrentRole}">
<TextBlock Text="{Binding RoleName}" Margin="5" FontWeight="Bold" Foreground="white" FontSize="15"/>
<TextBlock Text="{Binding RoleDesc}" Margin="5,3" Foreground="white" FontSize="14"/>
</StackPanel>
<!--选择用户-->
<Button Content="选择用户" VerticalAlignment="Center" HorizontalAlignment="Right"
Grid.Column="1" Style="{StaticResource NormalButtonStyle}"
Padding="10,0" Margin="5,0" Height="30"
Command="{Binding SelectUserCommand}"/>
<!--菜单选项-->
<Border Background="Gray" Grid.Row="1" Height="26" Margin="5,0" CornerRadius="5,5,0,0" BorderThickness="0,0,0,1" BorderBrush="#409EFE">
<TextBlock Text="菜单选项" VerticalAlignment="Center" Margin="10,0" Foreground="White" FontSize="15"/>
</Border>
<!--用户选项-->
<Border Background="Gray" Grid.Row="1" Grid.Column="1" Height="26" Margin="5,0" CornerRadius="5,5,0,0" BorderThickness="0,0,0,1" BorderBrush="#409EFE">
<TextBlock Text="用户选项" VerticalAlignment="Center" Margin="10,0" Foreground="White" FontSize="15"/>
</Border>
<!--绑定菜单-->
<TreeView ItemsSource="{Binding Menus}" FontSize="15" Grid.Row="2" Margin="5,0,5,10" BorderThickness="0" Background="Transparent">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<Grid Height="26">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" MinWidth="2"/>
<ColumnDefinition Width="auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<ToggleButton IsChecked="{Binding IsExpanded}"
Margin="3,0" Name="expandBox" Width="15" Height="15"
Template="{StaticResource ExpandeButtonTemplate}"/>
<CheckBox IsChecked="{Binding IsSelected}" Grid.Column="1" Margin="5,0"
HorizontalAlignment="Center" VerticalAlignment="Center"
Command="{Binding DataContext.SelectMenuCommand,RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}">
</CheckBox>
<TextBlock Text="{Binding MenuHeader}" Grid.Column="2" VerticalAlignment="Center" Foreground="White"/>
</Grid>
<HierarchicalDataTemplate.Triggers>
<DataTrigger Binding="{Binding Children.Count}" Value="0">
<Setter TargetName="expandBox" Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
<!--绑定用户-->
<ListBox ItemsSource="{Binding Users}" Background="#14273a" FontSize="15" Grid.Column="1" Grid.Row="2" Margin="5,3" VerticalAlignment="Top" BorderThickness="0">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<ContentPresenter/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="2"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Border Background="Transparent" Name="border" Margin="5" CornerRadius="5">
<Grid Height="40">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition/>
<ColumnDefinition Width="30"/>
</Grid.ColumnDefinitions>
<Border CornerRadius="5" Width="30" Height="30" Margin="5,0">
<Border.Background>
<ImageBrush ImageSource="{Binding UserIcon}"/>
</Border.Background>
</Border>
<TextBlock Text="{Binding RealName}" Grid.Column="1" VerticalAlignment="Center" Foreground="White"/>
<Border Width="1" Height="15" Background="#DDD" Grid.Column="1" HorizontalAlignment="Right"/>
<Button Content="&#xe625;" Grid.Column="2" Style="{StaticResource IconButtonStyle}"
Width="24" Height="24" Background="Transparent" Foreground="Wheat"
FontSize="10"
Command="{Binding DataContext.DeleteUserCommand,RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}"/>
</Grid>
</Border>
<DataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="Background" Value="gray"/>
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</Grid>
</GroupBox>
</Border>
</UserControl>

View File

@ -49,14 +49,14 @@
</Setter>
</Style>
</UserControl.Resources>
<Grid>
<Grid Background="#14273a" Margin="10,5,10,10">
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid >
<!--状态监控-->
<GroupBox Header="甲烷同位素分析仪状态监控" Margin="12,12,12,5">
<GroupBox Header="状态监控" Margin="12,12,12,5">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition/>
@ -74,7 +74,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备温度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备温度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding cH4IsotopeModel.Tem, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -88,7 +88,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备湿度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备湿度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding cH4IsotopeModel.Hum, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -102,7 +102,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备压力" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备压力" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding cH4IsotopeModel.Pressure, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -114,13 +114,13 @@
<Grid Grid.Row="0">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Horizontal">
<Border Width="10" Height="10" Background="Gray" CornerRadius="10" />
<TextBlock Text="未开启/未监控" Margin="10,5"/>
<TextBlock Text="未开启/未监控" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="Green" CornerRadius="10" />
<TextBlock Text="正常" Margin="10,5"/>
<TextBlock Text="正常" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="Yellow" CornerRadius="10" />
<TextBlock Text="警报" Margin="10,5"/>
<TextBlock Text="警报" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="red" CornerRadius="10" />
<TextBlock Text="故障" Margin="10,5"/>
<TextBlock Text="故障" Margin="10,5" Foreground="White"/>
</StackPanel>
</Grid>
@ -129,7 +129,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备绝缘" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备绝缘" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding cH4IsotopeModel.Insulation, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -143,7 +143,7 @@
</Grid.ColumnDefinitions>
<!--状态数据展示-->
<Grid Grid.Column="0">
<GroupBox Header="甲烷同位素分析仪状态数据展示" Margin="12,3,12,18">
<GroupBox Header="状态数据展示" Margin="12,3,12,18">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="35"/>
@ -157,15 +157,15 @@
<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Hidden" x:Name="sv" CanContentScroll="False" PreviewMouseWheel="ScrollViewer_PreviewMouseWheel">
<DataGrid ItemsSource="{Binding cH4IsotopeModellist }" FontSize="15" FontWeight="Bold" IsReadOnly="True" >
<DataGrid.Columns>
<DataGridTextColumn Header="序号" Width="60" Binding="{Binding DataIdNum}" />
<DataGridTextColumn Header="采样时间" Width="170" Binding="{Binding SamplingTime,StringFormat=yyyy-MM-dd HH:mm:ss}"/>
<DataGridTextColumn Header="C1浓度/%" Width="100" Binding="{Binding C1}" />
<DataGridTextColumn Header="C2浓度/ppm" Width="100" Binding="{Binding C2}"/>
<DataGridTextColumn Header="丰度/‰" Width="100" Binding="{Binding Abundance}"/>
<DataGridTextColumn Header="设备温度" Width="105" Binding="{Binding Tem}"/>
<DataGridTextColumn Header="设备湿度" Width="105" Binding="{Binding Hum}"/>
<DataGridTextColumn Header="设备压力" Width="105" Binding="{Binding Pressure}"/>
<DataGridTextColumn Header="设备绝缘" Width="105" Binding="{Binding Insulation}"/>
<DataGridTextColumn Header="序号" Width="60" Binding="{Binding DataIdNum}" Foreground="White"/>
<DataGridTextColumn Header="采样时间" Width="170" Binding="{Binding SamplingTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Foreground="White"/>
<DataGridTextColumn Header="C1浓度/%" Width="100" Binding="{Binding C1}" Foreground="White"/>
<DataGridTextColumn Header="C2浓度/ppm" Width="100" Binding="{Binding C2}" Foreground="White"/>
<DataGridTextColumn Header="丰度/‰" Width="100" Binding="{Binding Abundance}" Foreground="White"/>
<DataGridTextColumn Header="设备温度" Width="105" Binding="{Binding Tem}" Foreground="White"/>
<DataGridTextColumn Header="设备湿度" Width="105" Binding="{Binding Hum}" Foreground="White"/>
<DataGridTextColumn Header="设备压力" Width="105" Binding="{Binding Pressure}" Foreground="White"/>
<DataGridTextColumn Header="设备绝缘" Width="105" Binding="{Binding Insulation}" Foreground="White"/>
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
@ -177,7 +177,7 @@
</Grid>
<!--状态数据折线图-->
<Grid Grid.Column="1">
<GroupBox Header="甲烷同位素分析仪状态数据折线图 C1 / C2 / 丰度" Margin="12,3,12,18">
<GroupBox Header="实时数据跟踪 -C1 / C2 / 丰度" Margin="12,3,12,18">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
@ -218,17 +218,17 @@
<!--右上角图例 采集时间-->
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="10">
<Border Width="6" Height="6" Background="#552BEDF1" Margin="5,0"/>
<TextBlock Text="{Binding cH4IsotopeModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="Black"/>
<TextBlock Text="{Binding cH4IsotopeModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="White"/>
</StackPanel>
</Grid>
<Grid Grid.Row="1">
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding cH4IsotopeModel.CH4IsotopeChartsC2}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#E6E6FA" StrokeThickness="1">
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#FF2BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#E6E6FA" Offset="0"/>
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>
@ -256,10 +256,10 @@
<Grid Grid.Row="2">
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding cH4IsotopeModel.CH4IsotopeChartsAbundance}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#87CEFA" StrokeThickness="1">
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#FF2BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#87CEFA" Offset="0"/>
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>

View File

@ -49,14 +49,14 @@
</Setter>
</Style>
</UserControl.Resources>
<Grid>
<Grid Background="#14273a" Margin="10,5,10,10">
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid >
<!--状态监控-->
<GroupBox Header="CO2同位素分析仪状态监控" Margin="12,12,12,5">
<GroupBox Header="状态监控" Margin="12,12,12,5">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition/>
@ -74,7 +74,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备温度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备温度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding cO2IsotopeModel.Tem, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -88,7 +88,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备湿度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备湿度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding cO2IsotopeModel.Hum, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -102,7 +102,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备压力" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备压力" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding cO2IsotopeModel.Pressure, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -114,13 +114,13 @@
<Grid Grid.Row="0">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Horizontal">
<Border Width="10" Height="10" Background="Gray" CornerRadius="10" />
<TextBlock Text="未开启/未监控" Margin="10,5"/>
<TextBlock Text="未开启/未监控" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="Green" CornerRadius="10" />
<TextBlock Text="正常" Margin="10,5"/>
<TextBlock Text="正常" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="Yellow" CornerRadius="10" />
<TextBlock Text="警报" Margin="10,5"/>
<TextBlock Text="警报" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="red" CornerRadius="10" />
<TextBlock Text="故障" Margin="10,5"/>
<TextBlock Text="故障" Margin="10,5" Foreground="White"/>
</StackPanel>
</Grid>
@ -129,7 +129,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备绝缘" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备绝缘" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding cO2IsotopeModel.Insulation, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -143,7 +143,7 @@
</Grid.ColumnDefinitions>
<!--状态数据展示-->
<Grid Grid.Column="0">
<GroupBox Header="CO2同位素分析仪状态数据展示" Margin="12,3,12,18">
<GroupBox Header="状态数据展示" Margin="12,3,12,18">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="35"/>
@ -157,16 +157,16 @@
<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Hidden" x:Name="sv" CanContentScroll="False" PreviewMouseWheel="ScrollViewer_PreviewMouseWheel">
<DataGrid ItemsSource="{Binding cO2IsotopeModellist }" FontSize="15" FontWeight="Bold" IsReadOnly="True" >
<DataGrid.Columns>
<DataGridTextColumn Header="序号" Width="60" Binding="{Binding DataIdNum}" />
<DataGridTextColumn Header="采样时间" Width="170" Binding="{Binding SamplingTime,StringFormat=yyyy-MM-dd HH:mm:ss}"/>
<DataGridTextColumn Header="光强/V" Width="80" Binding="{Binding LightIntensity}" />
<DataGridTextColumn Header="激光温度/℃" Width="120" Binding="{Binding LaserTemperature}"/>
<DataGridTextColumn Header="12CO2浓度/ppm" Width="120" Binding="{Binding CO2Concentration}"/>
<DataGridTextColumn Header="12C同位素丰度/‰" Width="150" Binding="{Binding IsotopicAbundance}"/>
<DataGridTextColumn Header="设备温度" Width="105" Binding="{Binding Tem}"/>
<DataGridTextColumn Header="设备湿度" Width="105" Binding="{Binding Hum}"/>
<DataGridTextColumn Header="设备压力" Width="105" Binding="{Binding Pressure}"/>
<DataGridTextColumn Header="设备绝缘" Width="105" Binding="{Binding Insulation}"/>
<DataGridTextColumn Header="序号" Width="60" Binding="{Binding DataIdNum}" Foreground="White"/>
<DataGridTextColumn Header="采样时间" Width="170" Binding="{Binding SamplingTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Foreground="White"/>
<DataGridTextColumn Header="光强/V" Width="80" Binding="{Binding LightIntensity}" Foreground="White"/>
<DataGridTextColumn Header="激光温度/℃" Width="120" Binding="{Binding LaserTemperature}" Foreground="White"/>
<DataGridTextColumn Header="12CO2浓度/ppm" Width="120" Binding="{Binding CO2Concentration}" Foreground="White"/>
<DataGridTextColumn Header="12C同位素丰度/‰" Width="150" Binding="{Binding IsotopicAbundance}" Foreground="White"/>
<DataGridTextColumn Header="设备温度" Width="105" Binding="{Binding Tem}" Foreground="White"/>
<DataGridTextColumn Header="设备湿度" Width="105" Binding="{Binding Hum}" Foreground="White"/>
<DataGridTextColumn Header="设备压力" Width="105" Binding="{Binding Pressure}" Foreground="White"/>
<DataGridTextColumn Header="设备绝缘" Width="105" Binding="{Binding Insulation}" Foreground="White"/>
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
@ -178,7 +178,7 @@
</Grid>
<!--状态数据折线图-->
<Grid Grid.Column="1">
<GroupBox Header="CO2同位素分析仪状态数据折线图 " Margin="12,3,12,18">
<GroupBox Header="实时数据跟踪 -光强/激光温度/浓度/丰度 " Margin="12,3,12,18">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
@ -221,7 +221,7 @@
<!--右上角图例 采集时间-->
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="10">
<Border Width="6" Height="6" Background="#552BEDF1" Margin="5,0"/>
<TextBlock Text="{Binding cO2IsotopeModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="Black"/>
<TextBlock Text="{Binding cO2IsotopeModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="White"/>
</StackPanel>
</Grid>
@ -229,10 +229,10 @@
<Grid Grid.Row="1">
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding cO2IsotopeModel.CO2IsotopsChartsLaserTemperature}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#E6E6FA" StrokeThickness="1">
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#FF2BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#E6E6FA" Offset="0"/>
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>
@ -261,10 +261,10 @@
<Grid Grid.Row="2">
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding cO2IsotopeModel.CO2IsotopsChartsCO2Concentration}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#87CEFA" StrokeThickness="1">
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#FF2BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#87CEFA" Offset="0"/>
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>
@ -293,10 +293,10 @@
<Grid Grid.Row="3">
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding cO2IsotopeModel.CO2IsotopsChartsIsotopicAbundance}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#FFC1C1" StrokeThickness="1">
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#FF2BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#FFC1C1" Offset="0"/>
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>

View File

@ -50,7 +50,7 @@
</Style>
</UserControl.Resources>
<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Hidden" x:Name="mv" CanContentScroll="False" PreviewMouseWheel="ScrollViewer_PreviewMousemvWheel">
<Grid>
<Grid Background="#14273a" Margin="10,5,10,10">
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition Height="666"/>
@ -58,7 +58,7 @@
</Grid.RowDefinitions>
<Grid >
<!--状态监控-->
<GroupBox Header="色质联用仪状态监控" Margin="12,12,12,5">
<GroupBox Header="状态监控" Margin="12,12,12,5">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition/>
@ -76,7 +76,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备温度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备温度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding clormsModel.Tem, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -90,7 +90,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备湿度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备湿度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding clormsModel.Hum, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -104,7 +104,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备压力" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备压力" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding clormsModel.Pressure, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -116,13 +116,13 @@
<Grid Grid.Row="0">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Horizontal">
<Border Width="10" Height="10" Background="Gray" CornerRadius="10" />
<TextBlock Text="未开启/未监控" Margin="10,5"/>
<TextBlock Text="未开启/未监控" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="Green" CornerRadius="10" />
<TextBlock Text="正常" Margin="10,5"/>
<TextBlock Text="正常" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="Yellow" CornerRadius="10" />
<TextBlock Text="警报" Margin="10,5"/>
<TextBlock Text="警报" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="red" CornerRadius="10" />
<TextBlock Text="故障" Margin="10,5"/>
<TextBlock Text="故障" Margin="10,5" Foreground="White"/>
</StackPanel>
</Grid>
@ -131,7 +131,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备绝缘" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备绝缘" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding clormsModel.Insulation, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -145,7 +145,7 @@
</Grid.ColumnDefinitions>
<!--状态数据展示-->
<Grid Grid.Column="0">
<GroupBox Header="色质联用仪状态数据展示" Margin="12,3,12,18">
<GroupBox Header="状态数据展示" Margin="12,3,12,18">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="35"/>
@ -159,20 +159,20 @@
<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Hidden" x:Name="sv" CanContentScroll="False" PreviewMouseWheel="ScrollViewer_PreviewMouseWheel">
<DataGrid ItemsSource="{Binding colorMSModel }" FontSize="15" FontWeight="Bold" IsReadOnly="True" >
<DataGrid.Columns>
<DataGridTextColumn Header="序号" Width="60" Binding="{Binding DataIdNum}" />
<DataGridTextColumn Header="采样时间" Width="170" Binding="{Binding SamplingTime,StringFormat=yyyy-MM-dd HH:mm:ss}"/>
<DataGridTextColumn Header="C2浓度/ppb" Width="100" Binding="{Binding C2}" />
<DataGridTextColumn Header="C3浓度/ppb" Width="100" Binding="{Binding C3}" />
<DataGridTextColumn Header="C4浓度/ppb" Width="100" Binding="{Binding C4}" />
<DataGridTextColumn Header="C5浓度/ppb" Width="100" Binding="{Binding C5}" />
<DataGridTextColumn Header="C6浓度/ppb" Width="100" Binding="{Binding C6}" />
<DataGridTextColumn Header="C7浓度/ppb" Width="100" Binding="{Binding C7}" />
<DataGridTextColumn Header="C8浓度/ppb" Width="100" Binding="{Binding C8}" />
<DataGridTextColumn Header="C9浓度/ppb" Width="100" Binding="{Binding C9}" />
<DataGridTextColumn Header="设备温度" Width="105" Binding="{Binding Tem}"/>
<DataGridTextColumn Header="设备湿度" Width="105" Binding="{Binding Hum}"/>
<DataGridTextColumn Header="设备压力" Width="105" Binding="{Binding Pressure}"/>
<DataGridTextColumn Header="设备绝缘" Width="105" Binding="{Binding Insulation}"/>
<DataGridTextColumn Header="序号" Width="60" Binding="{Binding DataIdNum}" Foreground="White"/>
<DataGridTextColumn Header="采样时间" Width="170" Binding="{Binding SamplingTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Foreground="White"/>
<DataGridTextColumn Header="C2浓度/ppb" Width="100" Binding="{Binding C2}" Foreground="White"/>
<DataGridTextColumn Header="C3浓度/ppb" Width="100" Binding="{Binding C3}" Foreground="White"/>
<DataGridTextColumn Header="C4浓度/ppb" Width="100" Binding="{Binding C4}" Foreground="White"/>
<DataGridTextColumn Header="C5浓度/ppb" Width="100" Binding="{Binding C5}" Foreground="White"/>
<DataGridTextColumn Header="C6浓度/ppb" Width="100" Binding="{Binding C6}" Foreground="White"/>
<DataGridTextColumn Header="C7浓度/ppb" Width="100" Binding="{Binding C7}" Foreground="White"/>
<DataGridTextColumn Header="C8浓度/ppb" Width="100" Binding="{Binding C8}" Foreground="White"/>
<DataGridTextColumn Header="C9浓度/ppb" Width="100" Binding="{Binding C9}" Foreground="White"/>
<DataGridTextColumn Header="设备温度" Width="105" Binding="{Binding Tem}" Foreground="White"/>
<DataGridTextColumn Header="设备湿度" Width="105" Binding="{Binding Hum}" Foreground="White"/>
<DataGridTextColumn Header="设备压力" Width="105" Binding="{Binding Pressure}" Foreground="White"/>
<DataGridTextColumn Header="设备绝缘" Width="105" Binding="{Binding Insulation}" Foreground="White"/>
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
@ -184,7 +184,7 @@
</Grid>
<!--状态数据折线图-->
<Grid Grid.Column="1">
<GroupBox Header="色质联用仪状态数据折线图 C2 / C3 / C4" Margin="12,3,12,18">
<GroupBox Header="实时数据跟踪 -C2 / C3 / C4" Margin="12,3,12,18">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
@ -226,7 +226,7 @@
<!--右上角图例 采集时间-->
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="10">
<Border Width="6" Height="6" Background="#552BEDF1" Margin="5,0"/>
<TextBlock Text="{Binding clormsModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="Black"/>
<TextBlock Text="{Binding clormsModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="White"/>
</StackPanel>
</Grid>
@ -234,10 +234,10 @@
<Grid Grid.Row="1">
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding clormsModel.ColorMSChartsC3}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#E6E6FA" StrokeThickness="1">
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#FF2BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#E6E6FA" Offset="0"/>
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>
@ -266,10 +266,10 @@
<Grid Grid.Row="2">
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding clormsModel.ColorMSChartsC4}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#E6E6FA" StrokeThickness="1">
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#FF2BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#E6E6FA" Offset="0"/>
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>
@ -305,7 +305,7 @@
</Grid.ColumnDefinitions>
<!--状态数据展示-->
<Grid Grid.Column="0">
<GroupBox Header="色质联用仪状态数据折线图 C5 / C6 / C7 " Margin="12,3,12,18">
<GroupBox Header="实时数据跟踪 -C5 / C6 / C7 " Margin="12,3,12,18">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
@ -348,7 +348,7 @@
<!--右上角图例 采集时间-->
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="10">
<Border Width="6" Height="6" Background="#552BEDF1" Margin="5,0"/>
<TextBlock Text="{Binding clormsModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="Black"/>
<TextBlock Text="{Binding clormsModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="White"/>
</StackPanel>
</Grid>
@ -356,10 +356,10 @@
<Grid Grid.Row="1">
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding clormsModel.ColorMSChartsC6}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#E6E6FA" StrokeThickness="1">
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#FF2BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#E6E6FA" Offset="0"/>
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>
@ -388,10 +388,10 @@
<Grid Grid.Row="2">
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding clormsModel.ColorMSChartsC7}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#E6E6FA" StrokeThickness="1">
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#FF2BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#E6E6FA" Offset="0"/>
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>
@ -420,7 +420,7 @@
</Grid>
<!--状态数据折线图-->
<Grid Grid.Column="1">
<GroupBox Header="色质联用仪状态数据折线图 C8 / C9" Margin="12,3,12,18">
<GroupBox Header="实时数据跟踪 -C8 / C9" Margin="12,3,12,18">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
@ -461,7 +461,7 @@
<!--右上角图例 采集时间-->
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="10">
<Border Width="6" Height="6" Background="#552BEDF1" Margin="5,0"/>
<TextBlock Text="{Binding clormsModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="Black"/>
<TextBlock Text="{Binding clormsModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="White"/>
</StackPanel>
</Grid>
@ -469,10 +469,10 @@
<Grid Grid.Row="1">
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding clormsModel.ColorMSChartsC9}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#E6E6FA" StrokeThickness="1">
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#FF2BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#E6E6FA" Offset="0"/>
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>

View File

@ -50,14 +50,14 @@
</Setter>
</Style>
</UserControl.Resources>
<Grid>
<Grid Background="#14273a" Margin="10,5,10,10">
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid >
<!--状态监控-->
<GroupBox Header="MEMS色谱仪状态监控" Margin="12,12,12,5">
<GroupBox Header="状态监控" Margin="12,12,12,5">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition/>
@ -75,7 +75,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备温度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备温度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding mEMSSpModel.Tem, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -89,7 +89,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备湿度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备湿度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding mEMSSpModel.Hum, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -103,7 +103,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备压力" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备压力" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding mEMSSpModel.Pressure, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -115,13 +115,13 @@
<Grid Grid.Row="0">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Horizontal">
<Border Width="10" Height="10" Background="Gray" CornerRadius="10" />
<TextBlock Text="未开启/未监控" Margin="10,5"/>
<TextBlock Text="未开启/未监控" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="Green" CornerRadius="10" />
<TextBlock Text="正常" Margin="10,5"/>
<TextBlock Text="正常" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="Yellow" CornerRadius="10" />
<TextBlock Text="警报" Margin="10,5"/>
<TextBlock Text="警报" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="red" CornerRadius="10" />
<TextBlock Text="故障" Margin="10,5"/>
<TextBlock Text="故障" Margin="10,5" Foreground="White"/>
</StackPanel>
</Grid>
@ -130,7 +130,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备绝缘" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备绝缘" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding mEMSSpModel.Insulation, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -144,7 +144,7 @@
</Grid.ColumnDefinitions>
<!--状态数据展示-->
<Grid Grid.Column="0">
<GroupBox Header="MEMS色谱仪状态数据展示" Margin="12,3,12,18">
<GroupBox Header="状态数据展示" Margin="12,3,12,18">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="35"/>
@ -158,15 +158,15 @@
<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Hidden" x:Name="sv" CanContentScroll="False" PreviewMouseWheel="ScrollViewer_PreviewMouseWheel">
<DataGrid ItemsSource="{Binding mEMSSPModel }" FontSize="15" FontWeight="Bold" IsReadOnly="True" >
<DataGrid.Columns>
<DataGridTextColumn Header="序号" Width="60" Binding="{Binding DataIdNum}" />
<DataGridTextColumn Header="采样时间" Width="170" Binding="{Binding SamplingTime,StringFormat=yyyy-MM-dd HH:mm:ss}"/>
<DataGridTextColumn Header="C2浓度/ppm" Width="100" Binding="{Binding C2}" />
<DataGridTextColumn Header="C3浓度/ppm" Width="100" Binding="{Binding C3}"/>
<DataGridTextColumn Header="C4浓度/ppm" Width="100" Binding="{Binding C4}"/>
<DataGridTextColumn Header="设备温度" Width="105" Binding="{Binding Tem}"/>
<DataGridTextColumn Header="设备湿度" Width="105" Binding="{Binding Hum}"/>
<DataGridTextColumn Header="设备压力" Width="105" Binding="{Binding Pressure}"/>
<DataGridTextColumn Header="设备绝缘" Width="105" Binding="{Binding Insulation}"/>
<DataGridTextColumn Header="序号" Width="60" Binding="{Binding DataIdNum}" Foreground="White"/>
<DataGridTextColumn Header="采样时间" Width="170" Binding="{Binding SamplingTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Foreground="White"/>
<DataGridTextColumn Header="C2浓度/ppm" Width="100" Binding="{Binding C2}" Foreground="White"/>
<DataGridTextColumn Header="C3浓度/ppm" Width="100" Binding="{Binding C3}" Foreground="White"/>
<DataGridTextColumn Header="C4浓度/ppm" Width="100" Binding="{Binding C4}" Foreground="White"/>
<DataGridTextColumn Header="设备温度" Width="105" Binding="{Binding Tem}" Foreground="White"/>
<DataGridTextColumn Header="设备湿度" Width="105" Binding="{Binding Hum}" Foreground="White"/>
<DataGridTextColumn Header="设备压力" Width="105" Binding="{Binding Pressure}" Foreground="White"/>
<DataGridTextColumn Header="设备绝缘" Width="105" Binding="{Binding Insulation}" Foreground="White"/>
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
@ -178,7 +178,7 @@
</Grid>
<!--状态数据折线图-->
<Grid Grid.Column="1">
<GroupBox Header="MEMS色谱仪状态数据折线图 C2 / C3 / C4" Margin="12,3,12,18">
<GroupBox Header="实时数据跟踪 -C2 / C3 / C4" Margin="12,3,12,18">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
@ -219,17 +219,17 @@
<!--右上角图例 采集时间-->
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="10">
<Border Width="6" Height="6" Background="#552BEDF1" Margin="5,0"/>
<TextBlock Text="{Binding mEMSSpModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="Black"/>
<TextBlock Text="{Binding mEMSSpModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="White"/>
</StackPanel>
</Grid>
<Grid Grid.Row="1">
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding mEMSSpModel.MeMSSPChartsC3}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#E6E6FA" StrokeThickness="1">
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#552BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#E6E6FA" Offset="0"/>
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>
@ -257,10 +257,10 @@
<Grid Grid.Row="2">
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding mEMSSpModel.MeMSSPChartsC4}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#87CEFA" StrokeThickness="1">
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#552BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#87CEFA" Offset="0"/>
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>

View File

@ -50,7 +50,7 @@
</Style>
</UserControl.Resources>
<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Hidden" x:Name="mv" CanContentScroll="False" PreviewMouseWheel="ScrollViewer_PreviewMousemvWheel">
<Grid>
<Grid Background="#14273a" Margin="10,5,10,10">
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition Height="666"/>
@ -58,7 +58,7 @@
</Grid.RowDefinitions>
<Grid >
<!--状态监控-->
<GroupBox Header="MEMS质谱仪状态监控" Margin="12,12,12,5">
<GroupBox Header="状态监控" Margin="12,12,12,5">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition/>
@ -76,7 +76,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备温度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备温度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding mEMSZpModel.Tem, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -90,7 +90,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备湿度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备湿度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding mEMSZpModel.Hum, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -104,7 +104,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备压力" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备压力" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding mEMSZpModel.Pressure, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -116,13 +116,13 @@
<Grid Grid.Row="0">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Horizontal">
<Border Width="10" Height="10" Background="Gray" CornerRadius="10" />
<TextBlock Text="未开启/未监控" Margin="10,5"/>
<TextBlock Text="未开启/未监控" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="Green" CornerRadius="10" />
<TextBlock Text="正常" Margin="10,5"/>
<TextBlock Text="正常" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="Yellow" CornerRadius="10" />
<TextBlock Text="警报" Margin="10,5"/>
<TextBlock Text="警报" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="red" CornerRadius="10" />
<TextBlock Text="故障" Margin="10,5"/>
<TextBlock Text="故障" Margin="10,5" Foreground="White"/>
</StackPanel>
</Grid>
@ -131,7 +131,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备绝缘" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备绝缘" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding mEMSZpModel.Insulation, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -145,7 +145,7 @@
</Grid.ColumnDefinitions>
<!--状态数据展示-->
<Grid Grid.Column="0">
<GroupBox Header="MEMS质谱仪状态数据展示" Margin="12,3,12,18">
<GroupBox Header="状态数据展示" Margin="12,3,12,18">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="35"/>
@ -159,18 +159,18 @@
<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Hidden" x:Name="sv" CanContentScroll="False" PreviewMouseWheel="ScrollViewer_PreviewMouseWheel">
<DataGrid ItemsSource="{Binding mEMSZPModel }" FontSize="15" FontWeight="Bold" IsReadOnly="True" >
<DataGrid.Columns>
<DataGridTextColumn Header="序号" Width="60" Binding="{Binding DataIdNum}" />
<DataGridTextColumn Header="采样时间" Width="170" Binding="{Binding SamplingTime,StringFormat=yyyy-MM-dd HH:mm:ss}"/>
<DataGridTextColumn Header="CH4浓度/ppm" Width="100" Binding="{Binding CH4}" />
<DataGridTextColumn Header="H2O浓度/%" Width="100" Binding="{Binding H2O}"/>
<DataGridTextColumn Header="N2浓度/ppm" Width="100" Binding="{Binding N2}"/>
<DataGridTextColumn Header="O2浓度/ppm" Width="100" Binding="{Binding O2}"/>
<DataGridTextColumn Header="Ar浓度/ppm" Width="100" Binding="{Binding Ar}"/>
<DataGridTextColumn Header="CO2浓度/ppm" Width="100" Binding="{Binding CO2}"/>
<DataGridTextColumn Header="设备温度" Width="105" Binding="{Binding Tem}"/>
<DataGridTextColumn Header="设备湿度" Width="105" Binding="{Binding Hum}"/>
<DataGridTextColumn Header="设备压力" Width="105" Binding="{Binding Pressure}"/>
<DataGridTextColumn Header="设备绝缘" Width="105" Binding="{Binding Insulation}"/>
<DataGridTextColumn Header="序号" Width="60" Binding="{Binding DataIdNum}" Foreground="White"/>
<DataGridTextColumn Header="采样时间" Width="170" Binding="{Binding SamplingTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Foreground="White"/>
<DataGridTextColumn Header="CH4浓度/ppm" Width="100" Binding="{Binding CH4}" Foreground="White"/>
<DataGridTextColumn Header="H2O浓度/%" Width="100" Binding="{Binding H2O}" Foreground="White"/>
<DataGridTextColumn Header="N2浓度/ppm" Width="100" Binding="{Binding N2}" Foreground="White"/>
<DataGridTextColumn Header="O2浓度/ppm" Width="100" Binding="{Binding O2}" Foreground="White"/>
<DataGridTextColumn Header="Ar浓度/ppm" Width="100" Binding="{Binding Ar}" Foreground="White"/>
<DataGridTextColumn Header="CO2浓度/ppm" Width="100" Binding="{Binding CO2}" Foreground="White"/>
<DataGridTextColumn Header="设备温度" Width="105" Binding="{Binding Tem}" Foreground="White"/>
<DataGridTextColumn Header="设备湿度" Width="105" Binding="{Binding Hum}" Foreground="White"/>
<DataGridTextColumn Header="设备压力" Width="105" Binding="{Binding Pressure}" Foreground="White"/>
<DataGridTextColumn Header="设备绝缘" Width="105" Binding="{Binding Insulation}" Foreground="White"/>
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
@ -182,7 +182,7 @@
</Grid>
<!--状态数据折线图-->
<Grid Grid.Column="1">
<GroupBox Header="MEMS质谱仪状态数据折线图 CH4 / H2O" Margin="12,3,12,18">
<GroupBox Header="实时数据跟踪 -CH4 / H2O" Margin="12,3,12,18">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
@ -223,7 +223,7 @@
<!--右上角图例 采集时间-->
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="10">
<Border Width="6" Height="6" Background="#552BEDF1" Margin="5,0"/>
<TextBlock Text="{Binding mEMSZpModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="Black"/>
<TextBlock Text="{Binding mEMSZpModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="White"/>
</StackPanel>
</Grid>
@ -231,10 +231,10 @@
<Grid Grid.Row="1">
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding mEMSZpModel.MeMSZPChartsH2O}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#E6E6FA" StrokeThickness="1">
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#FF2BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#E6E6FA" Offset="0"/>
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>
@ -270,7 +270,7 @@
</Grid.ColumnDefinitions>
<!--状态数据展示-->
<Grid Grid.Column="0">
<GroupBox Header="MEMS质谱仪状态数据折线图 N2 / O2" Margin="12,3,12,18">
<GroupBox Header="实时数据跟踪 -N2 / O2" Margin="12,3,12,18">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
@ -312,7 +312,7 @@
<!--右上角图例 采集时间-->
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="10">
<Border Width="6" Height="6" Background="#552BEDF1" Margin="5,0"/>
<TextBlock Text="{Binding mEMSZpModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="Black"/>
<TextBlock Text="{Binding mEMSZpModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="White"/>
</StackPanel>
</Grid>
@ -320,10 +320,10 @@
<Grid Grid.Row="1">
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding mEMSZpModel.MeMSZPChartsO2}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#E6E6FA" StrokeThickness="1">
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#FF2BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#E6E6FA" Offset="0"/>
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>
@ -352,7 +352,7 @@
</Grid>
<!--状态数据折线图-->
<Grid Grid.Column="1">
<GroupBox Header="MEMS质谱仪状态数据折线图 Ar / CO2" Margin="12,3,12,18">
<GroupBox Header="实时数据跟踪 -Ar / CO2" Margin="12,3,12,18">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
@ -393,7 +393,7 @@
<!--右上角图例 采集时间-->
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="10">
<Border Width="6" Height="6" Background="#552BEDF1" Margin="5,0"/>
<TextBlock Text="{Binding mEMSZpModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="Black"/>
<TextBlock Text="{Binding mEMSZpModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="White"/>
</StackPanel>
</Grid>
@ -401,10 +401,10 @@
<Grid Grid.Row="1">
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding mEMSZpModel.MeMSZPChartsCO2}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#E6E6FA" StrokeThickness="1">
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#FF2BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#E6E6FA" Offset="0"/>
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>

View File

@ -9,7 +9,287 @@
xmlns:local="clr-namespace:InSituLaboratory.Views.Pages.Sensor"
mc:Ignorable="d" Template="{StaticResource PageSearchAndDownloadTempalte}"
FontFamily="{StaticResource DigitalDisplay}">
<Grid>
<UserControl.Resources>
<converters:SensorStateConvert x:Key="SensorStateConvert" />
<Style TargetType="GroupBox">
<Setter Property="Margin" Value="10,5" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GroupBox">
<Grid>
<!-- 左上角 -->
<Polyline HorizontalAlignment="Left" VerticalAlignment="Top" Points="0 30, 0 10, 10 0, 30 0" Stroke="#9918AABD" StrokeThickness="1" />
<!-- 左上角点 -->
<Ellipse Width="4" Height="4" Margin="24,-2,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Fill="#9918AABD" />
<Ellipse Width="4" Height="4" Margin="-2,24,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Fill="#9918AABD" />
<!-- 右上角 -->
<Path HorizontalAlignment="Right" VerticalAlignment="Top" Data="M0 0, 3 3, 30 3, 33 0, 68 0, 73 7,78 7, 78 10M8 0, 25 0" Stroke="#5518AABD" />
<!-- 左下角 -->
<Polyline HorizontalAlignment="Left" VerticalAlignment="Bottom" Points="0,0 0,15 10,15" Stroke="#5518AABD" />
<!-- 右下角 -->
<Polyline HorizontalAlignment="Right" VerticalAlignment="Bottom" Points="10,0 0,10" Stroke="#5518AABD" />
<!-- 右下角图标 -->
<Polygon HorizontalAlignment="Right" VerticalAlignment="Bottom" Fill="#9918AABD" Points="0,7 7 7 7 0" />
<Border Margin="30,-0.5,78,0" VerticalAlignment="Top" BorderBrush="#5518AABD" BorderThickness="0,1,0,0" />
<Border Margin="0,10" HorizontalAlignment="Right" BorderBrush="#5518AABD" BorderThickness="0,0,1,0" />
<Border Margin="10,0" VerticalAlignment="Bottom" BorderBrush="#5518AABD" BorderThickness="0,1,0,0" />
<Border Margin="-0.5,15" HorizontalAlignment="Left" BorderBrush="#5518AABD" BorderThickness="0,0,1,0" />
<!-- 箭头 -->
<Path Margin="10,13" HorizontalAlignment="Left" VerticalAlignment="Top" Data="M0 0,3 0,5 4,3 8,0 8,3 4" Fill="#9918AABD" />
<Path Margin="16,13" HorizontalAlignment="Left" VerticalAlignment="Top" Data="M0 0,3 0,5 4,3 8,0 8,3 4" Fill="#5518AABD" />
<!-- 字体 -->
<TextBlock Margin="25,8" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="#18AABD" Text="{TemplateBinding Header}" FontSize="18"/>
<!-- 占位对象 -->
<ContentPresenter />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Grid Background="#14273a" Margin="10,5,10,10">
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid >
<!--状态监控-->
<GroupBox Header="状态监控" Margin="12,12,12,5">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid >
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备温度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding ParticleModel.Tem, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备湿度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding ParticleModel.Hum, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
<Grid Grid.Column="2">
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备压力" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding ParticleModel.Pressure, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
<Grid Grid.Column="3">
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Horizontal">
<Border Width="10" Height="10" Background="Gray" CornerRadius="10" />
<TextBlock Text="未开启/未监控" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="Green" CornerRadius="10" />
<TextBlock Text="正常" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="Yellow" CornerRadius="10" />
<TextBlock Text="警报" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="red" CornerRadius="10" />
<TextBlock Text="故障" Margin="10,5" Foreground="White"/>
</StackPanel>
</Grid>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备绝缘" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding ParticleModel.Insulation, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
</Grid>
</GroupBox>
</Grid>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<!--状态数据展示-->
<Grid Grid.Column="0">
<GroupBox Header="状态数据展示" Margin="12,3,12,18">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="35"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid Grid.IsSharedSizeScope="True" Margin="5,5,5,2" Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Hidden" x:Name="sv" CanContentScroll="False" PreviewMouseWheel="ScrollViewer_PreviewMouseWheel">
<DataGrid ItemsSource="{Binding ParticleModellist }" FontSize="15" FontWeight="Bold" IsReadOnly="True" >
<DataGrid.Columns>
<DataGridTextColumn Header="序号" Width="60" Binding="{Binding DataIdNum}" Foreground="White"/>
<DataGridTextColumn Header="采样时间" Width="170" Binding="{Binding SamplingTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Foreground="White"/>
<DataGridTextColumn Header="颗粒物序号" Width="80" Binding="{Binding ParticleNumber}" Foreground="White"/>
<DataGridTextColumn Header="坐标X" Width="120" Binding="{Binding CoordinateX}" Foreground="White"/>
<DataGridTextColumn Header="坐标Y" Width="120" Binding="{Binding CoordinateY}" Foreground="White"/>
<DataGridTextColumn Header="类型" Width="150" Binding="{Binding Type}" Foreground="White"/>
<DataGridTextColumn Header="面积" Width="105" Binding="{Binding Area}" Foreground="White"/>
<DataGridTextColumn Header="长" Width="105" Binding="{Binding Long}" Foreground="White"/>
<DataGridTextColumn Header="宽" Width="105" Binding="{Binding Wide}" Foreground="White"/>
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
<zxc:Pagination DataContext="{Binding PaginationModel}" Grid.Row="2" HorizontalAlignment="Center"/>
</Grid>
</Grid>
</GroupBox>
</Grid>
<!--状态数据折线图-->
<Grid Grid.Column="1">
<GroupBox Header="实时数据跟踪 -面积/长/宽 " Margin="12,3,12,18">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<!--面积-->
<Grid >
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding ParticleModel.AreaCharts}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#FF2BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>
</lvc:LineSeries>
</lvc:CartesianChart.Series>
<!--X轴-->
<lvc:CartesianChart.AxisX>
<lvc:Axis Labels="{Binding X_Time}">
<lvc:Axis.Separator>
<lvc:Separator Step="1" StrokeThickness="0"/>
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisX>
<!--Y轴-->
<lvc:CartesianChart.AxisY>
<lvc:Axis MinValue="{Binding Y_MinValue}" MaxValue="{Binding Y_MaxValue}">
<lvc:Axis.Separator>
<lvc:Separator Step="{Binding Step}" Stroke="#11FFFFFF"/>
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisY>
</lvc:CartesianChart>
<!--右上角图例 采集时间-->
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="10">
<Border Width="6" Height="6" Background="#552BEDF1" Margin="5,0"/>
<TextBlock Text="{Binding ParticleModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="White"/>
</StackPanel>
</Grid>
<!--长-->
<Grid Grid.Row="1">
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding ParticleModel.LongCharts}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#FF2BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>
</lvc:LineSeries>
</lvc:CartesianChart.Series>
<!--X轴-->
<lvc:CartesianChart.AxisX>
<lvc:Axis Labels="{Binding X_Time}">
<lvc:Axis.Separator>
<lvc:Separator Step="1" StrokeThickness="0"/>
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisX>
<!--Y轴-->
<lvc:CartesianChart.AxisY>
<lvc:Axis MinValue="{Binding Y_MinValue}" MaxValue="{Binding Y_MaxValue}">
<lvc:Axis.Separator>
<lvc:Separator Step="{Binding Step}" Stroke="#11FFFFFF"/>
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisY>
</lvc:CartesianChart>
</Grid>
<!--宽-->
<Grid Grid.Row="2">
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding ParticleModel.WideCharts}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#FF2BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>
</lvc:LineSeries>
</lvc:CartesianChart.Series>
<!--X轴-->
<lvc:CartesianChart.AxisX>
<lvc:Axis Labels="{Binding X_Time}">
<lvc:Axis.Separator>
<lvc:Separator Step="1" StrokeThickness="0"/>
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisX>
<!--Y轴-->
<lvc:CartesianChart.AxisY>
<lvc:Axis MinValue="{Binding Y_MinValue}" MaxValue="{Binding Y_MaxValue}">
<lvc:Axis.Separator>
<lvc:Separator Step="{Binding Step}" Stroke="#11FFFFFF"/>
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisY>
</lvc:CartesianChart>
</Grid>
</Grid>
</GroupBox>
</Grid>
</Grid>
</Grid>
</UserControl>

View File

@ -24,5 +24,31 @@ namespace InSituLaboratory.Views.Pages.Sensor
{
InitializeComponent();
}
/// <summary>
/// 支持鼠标滚轮上下滚动
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
ScrollViewer viewer = sv; //sv 为Scrollview的名字在Xaml文件中定义。
if (viewer == null) return;
double num = Math.Abs((int)(e.Delta / 2));
double offset = 0.0;
if (e.Delta > 0)
{
offset = Math.Max((double)0.0, (double)(viewer.VerticalOffset - num));//viewer.VerticalOffset获取包含滚动内容的垂直偏移量的值。
}
else
{
offset = Math.Min(viewer.ScrollableHeight, viewer.VerticalOffset + num);
}
if (offset != viewer.VerticalOffset)
{
viewer.ScrollToVerticalOffset(offset);//将 ScrollViewer 内的内容滚动到指定的垂直偏移量位置。
e.Handled = true;
}
}
}
}

View File

@ -49,14 +49,14 @@
</Setter>
</Style>
</UserControl.Resources>
<Grid>
<Grid Background="#14273a" Margin="10,5,10,10">
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid >
<!--状态监控-->
<GroupBox Header="测序仪状态监控" Margin="12,12,12,5">
<GroupBox Header="状态监控" Margin="12,12,12,5">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition/>
@ -74,7 +74,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备温度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备温度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding sequencerModel.Tem, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -88,7 +88,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备湿度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备湿度" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding sequencerModel.Hum, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -102,7 +102,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备压力" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备压力" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding sequencerModel.Pressure, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -114,11 +114,11 @@
<Grid Grid.Row="0">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Horizontal">
<Border Width="10" Height="10" Background="Gray" CornerRadius="10" />
<TextBlock Text="未开启/未监控" Margin="10,5"/>
<TextBlock Text="未开启/未监控" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="Green" CornerRadius="10" />
<TextBlock Text="正常" Margin="10,5"/>
<TextBlock Text="正常" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="Yellow" CornerRadius="10" />
<TextBlock Text="警报" Margin="10,5"/>
<TextBlock Text="警报" Margin="10,5" Foreground="White"/>
<Border Width="10" Height="10" Background="red" CornerRadius="10" />
<TextBlock Text="故障" Margin="10,5"/>
</StackPanel>
@ -129,7 +129,7 @@
<ColumnDefinition Width="2*" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设备绝缘" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16"/>
<TextBlock Grid.Column="0" Text="设备绝缘" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" Foreground="White"/>
<Border Grid.Column="1" Width="20" Height="20" Background="{Binding sequencerModel.Insulation, Converter={StaticResource ResourceKey=SensorStateConvert}}" CornerRadius="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Grid>
@ -143,7 +143,7 @@
</Grid.ColumnDefinitions>
<!--状态数据展示-->
<Grid Grid.Column="0">
<GroupBox Header="测序仪状态数据展示" Margin="12,3,12,18">
<GroupBox Header="状态数据展示" Margin="12,3,12,18">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="35"/>
@ -157,15 +157,15 @@
<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Hidden" x:Name="sv" CanContentScroll="False" PreviewMouseWheel="ScrollViewer_PreviewMouseWheel">
<DataGrid ItemsSource="{Binding sequencerModellist }" FontSize="15" FontWeight="Bold" IsReadOnly="True" >
<DataGrid.Columns>
<DataGridTextColumn Header="序号" Width="60" Binding="{Binding DataIdNum}" />
<DataGridTextColumn Header="采样时间" Width="170" Binding="{Binding SamplingTime,StringFormat=yyyy-MM-dd HH:mm:ss}"/>
<DataGridTextColumn Header="试剂温度/" Width="80" Binding="{Binding ReagentTemperature}" />
<DataGridTextColumn Header="样本浓度" Width="120" Binding="{Binding SampleConcentration}"/>
<DataGridTextColumn Header="当前工作流程" Width="120" Binding="{Binding CurrentWorkflow}"/>
<DataGridTextColumn Header="设备温度" Width="105" Binding="{Binding Tem}"/>
<DataGridTextColumn Header="设备湿度" Width="105" Binding="{Binding Hum}"/>
<DataGridTextColumn Header="设备压力" Width="105" Binding="{Binding Pressure}"/>
<DataGridTextColumn Header="设备绝缘" Width="105" Binding="{Binding Insulation}"/>
<DataGridTextColumn Header="序号" Width="60" Binding="{Binding DataIdNum}" Foreground="White"/>
<DataGridTextColumn Header="采样时间" Width="170" Binding="{Binding SamplingTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Foreground="White"/>
<DataGridTextColumn Header="试剂温度/" Width="80" Binding="{Binding ReagentTemperature}" Foreground="White"/>
<DataGridTextColumn Header="样本浓度" Width="120" Binding="{Binding SampleConcentration}" Foreground="White"/>
<DataGridTextColumn Header="当前工作流程" Width="120" Binding="{Binding CurrentWorkflow}" Foreground="White"/>
<DataGridTextColumn Header="设备温度" Width="105" Binding="{Binding Tem}" Foreground="White"/>
<DataGridTextColumn Header="设备湿度" Width="105" Binding="{Binding Hum}" Foreground="White"/>
<DataGridTextColumn Header="设备压力" Width="105" Binding="{Binding Pressure}" Foreground="White"/>
<DataGridTextColumn Header="设备绝缘" Width="105" Binding="{Binding Insulation}" Foreground="White"/>
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
@ -177,7 +177,7 @@
</Grid>
<!--状态数据折线图-->
<Grid Grid.Column="1">
<GroupBox Header="测序仪状态数据折线图 " Margin="12,3,12,18">
<GroupBox Header="实时数据跟踪 -试剂温度/样本浓度" Margin="12,3,12,18">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
@ -218,7 +218,7 @@
<!--右上角图例 采集时间-->
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="10">
<Border Width="6" Height="6" Background="#552BEDF1" Margin="5,0"/>
<TextBlock Text="{Binding sequencerModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="Black"/>
<TextBlock Text="{Binding sequencerModel.SamplingTime,StringFormat=yyyy/MM/dd HH:mm:ss}" FontSize="11" Foreground="White"/>
</StackPanel>
</Grid>
@ -226,10 +226,10 @@
<Grid Grid.Row="1">
<lvc:CartesianChart Margin="20,35,20,5" DataContext="{Binding sequencerModel.SequencerChartsCon}" DisableAnimations="True">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#E6E6FA" StrokeThickness="1">
<lvc:LineSeries Values="{Binding Values }" Title="{Binding Value_Name}" PointGeometrySize="0" Stroke="#FF2BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#E6E6FA" Offset="0"/>
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,138 @@
<UserControl x:Class="InSituLaboratory.Views.Pages.SysDeviceView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:InSituLaboratory.Views.Pages"
FontFamily="{StaticResource DigitalDisplay}"
mc:Ignorable="d" Template="{StaticResource PageTempalte}">
<UserControl.Resources>
<Style TargetType="GroupBox">
<Setter Property="Margin" Value="10,5" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GroupBox">
<Grid>
<!-- 左上角 -->
<Polyline HorizontalAlignment="Left" VerticalAlignment="Top" Points="0 30, 0 10, 10 0, 30 0" Stroke="#9918AABD" StrokeThickness="1" />
<!-- 左上角点 -->
<Ellipse Width="4" Height="4" Margin="24,-2,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Fill="#9918AABD" />
<Ellipse Width="4" Height="4" Margin="-2,24,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Fill="#9918AABD" />
<!-- 右上角 -->
<Path HorizontalAlignment="Right" VerticalAlignment="Top" Data="M0 0, 3 3, 30 3, 33 0, 68 0, 73 7,78 7, 78 10M8 0, 25 0" Stroke="#5518AABD" />
<!-- 左下角 -->
<Polyline HorizontalAlignment="Left" VerticalAlignment="Bottom" Points="0,0 0,15 10,15" Stroke="#5518AABD" />
<!-- 右下角 -->
<Polyline HorizontalAlignment="Right" VerticalAlignment="Bottom" Points="10,0 0,10" Stroke="#5518AABD" />
<!-- 右下角图标 -->
<Polygon HorizontalAlignment="Right" VerticalAlignment="Bottom" Fill="#9918AABD" Points="0,7 7 7 7 0" />
<Border Margin="30,-0.5,78,0" VerticalAlignment="Top" BorderBrush="#5518AABD" BorderThickness="0,1,0,0" />
<Border Margin="0,10" HorizontalAlignment="Right" BorderBrush="#5518AABD" BorderThickness="0,0,1,0" />
<Border Margin="10,0" VerticalAlignment="Bottom" BorderBrush="#5518AABD" BorderThickness="0,1,0,0" />
<Border Margin="-0.5,15" HorizontalAlignment="Left" BorderBrush="#5518AABD" BorderThickness="0,0,1,0" />
<!-- 箭头 -->
<Path Margin="10,13" HorizontalAlignment="Left" VerticalAlignment="Top" Data="M0 0,3 0,5 4,3 8,0 8,3 4" Fill="#9918AABD" />
<Path Margin="16,13" HorizontalAlignment="Left" VerticalAlignment="Top" Data="M0 0,3 0,5 4,3 8,0 8,3 4" Fill="#5518AABD" />
<!-- 字体 -->
<TextBlock Margin="25,8" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="#18AABD" Text="{TemplateBinding Header}" FontSize="18"/>
<!-- 占位对象 -->
<ContentPresenter />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Grid Grid.IsSharedSizeScope="True" >
<Border CornerRadius="5" Background="#14273a" Margin="10,5,10,10">
<GroupBox>
<Grid Grid.IsSharedSizeScope="True" Margin="10,5,10,10">
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border Background="#EEE" Height="1" VerticalAlignment="Bottom"/>
<Grid TextBlock.FontSize="15" TextBlock.FontWeight="Bold" TextBlock.Foreground="#EEE" Background="#14273a">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150"/>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Text="序号" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="设备代码" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="设备名称" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center" />
<TextBlock Text="最小工作时长/min" Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="单次工作最大时长/min" Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="操作" Grid.Column="5" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Grid>
<ListBox ItemsSource="{Binding Devices}" Grid.Row="1" BorderThickness="0" Background="#14273a">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border>
<ContentPresenter/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Background="Transparent" Name="rootDevice">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150"/>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<!--间隔线-->
<!--<Border BorderBrush="#EEE" BorderThickness="0,0,0,1" Height="1" VerticalAlignment="Bottom" Grid.ColumnSpan="10" SnapsToDevicePixels="True"/>-->
<!--序号-->
<TextBlock Text="{Binding Index}" Grid.Column="0" Height="35" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="15" Foreground="White"/>
<!--设备代码-->
<TextBlock Text="{Binding DeviceType}" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="15" Foreground="White"/>
<!--设备名称-->
<TextBlock Text="{Binding DeviceName}" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="15" Foreground="White"/>
<!--最小工作时长-->
<TextBlock Text="{Binding MinWorkTime}" Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="15" Foreground="White"/>
<!--单次工作最大时长-->
<TextBlock Text="{Binding WorkTime}" Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="15" Foreground="White"/>
<!--操作-->
<StackPanel Grid.Column="5" VerticalAlignment="Center" HorizontalAlignment="Center" Orientation="Horizontal">
<TextBlock VerticalAlignment="Center">
<Hyperlink Command="{Binding DataContext.ModifyCommand,RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}" FontSize="15"
TextDecorations="None" Foreground="#E0FFFF">编辑</Hyperlink>
</TextBlock>
<TextBlock Margin="5,3">
<Hyperlink Command="{Binding DataContext.DeleteCommand,RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}" FontSize="15"
TextDecorations="None" Foreground="#E0FFFF">删除</Hyperlink>
</TextBlock>
</StackPanel>
</Grid>
<DataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="rootDevice" Property="Background" Value="#11409EFE"/>
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</GroupBox>
</Border>
</Grid>
</UserControl>

View File

@ -0,0 +1,28 @@
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 InSituLaboratory.Views.Pages
{
/// <summary>
/// SysDevice.xaml 的交互逻辑
/// </summary>
public partial class SysDeviceView : UserControl
{
public SysDeviceView()
{
InitializeComponent();
}
}
}

View File

@ -6,182 +6,225 @@
xmlns:local="clr-namespace:InSituLaboratory.Views.Pages"
FontFamily="{StaticResource DigitalDisplay}"
mc:Ignorable="d" Template="{StaticResource PageTempalte}">
<Grid Grid.IsSharedSizeScope="True" Margin="0,5,0,10">
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border Background="#EEE" Height="1" VerticalAlignment="Bottom"/>
<UserControl.Resources>
<Style TargetType="GroupBox">
<Setter Property="Margin" Value="10,5" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GroupBox">
<Grid>
<!-- 左上角 -->
<Polyline HorizontalAlignment="Left" VerticalAlignment="Top" Points="0 30, 0 10, 10 0, 30 0" Stroke="#9918AABD" StrokeThickness="1" />
<!-- 左上角点 -->
<Ellipse Width="4" Height="4" Margin="24,-2,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Fill="#9918AABD" />
<Ellipse Width="4" Height="4" Margin="-2,24,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Fill="#9918AABD" />
<!-- 右上角 -->
<Path HorizontalAlignment="Right" VerticalAlignment="Top" Data="M0 0, 3 3, 30 3, 33 0, 68 0, 73 7,78 7, 78 10M8 0, 25 0" Stroke="#5518AABD" />
<!-- 左下角 -->
<Polyline HorizontalAlignment="Left" VerticalAlignment="Bottom" Points="0,0 0,15 10,15" Stroke="#5518AABD" />
<!-- 右下角 -->
<Polyline HorizontalAlignment="Right" VerticalAlignment="Bottom" Points="10,0 0,10" Stroke="#5518AABD" />
<!-- 右下角图标 -->
<Polygon HorizontalAlignment="Right" VerticalAlignment="Bottom" Fill="#9918AABD" Points="0,7 7 7 7 0" />
<Grid TextBlock.FontSize="15" TextBlock.FontWeight="Bold" TextBlock.Foreground="#666">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40"/>
<ColumnDefinition Width="70"/>
<ColumnDefinition Width="70"/>
<ColumnDefinition Width="120"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="120"/>
</Grid.ColumnDefinitions>
<TextBlock Text="序号" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="头像" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="用户名" Grid.Column="2" VerticalAlignment="Center" Margin="5,0"/>
<TextBlock Text="姓名" Grid.Column="3" VerticalAlignment="Center" Margin="5,0"/>
<TextBlock Text="地址" Grid.Column="4" VerticalAlignment="Center" Margin="5,0"/>
<TextBlock Text="性别" Grid.Column="5" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="角色" Grid.Column="6" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="状态" Grid.Column="7" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="操作" Grid.Column="8" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<!--编辑、分配权限、重置密码、删除-->
</Grid>
<Border Margin="30,-0.5,78,0" VerticalAlignment="Top" BorderBrush="#5518AABD" BorderThickness="0,1,0,0" />
<Border Margin="0,10" HorizontalAlignment="Right" BorderBrush="#5518AABD" BorderThickness="0,0,1,0" />
<Border Margin="10,0" VerticalAlignment="Bottom" BorderBrush="#5518AABD" BorderThickness="0,1,0,0" />
<Border Margin="-0.5,15" HorizontalAlignment="Left" BorderBrush="#5518AABD" BorderThickness="0,0,1,0" />
<ListBox ItemsSource="{Binding Users}" Grid.Row="1" BorderThickness="0" Background="Transparent">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border>
<ContentPresenter/>
<!-- 箭头 -->
<Path Margin="10,13" HorizontalAlignment="Left" VerticalAlignment="Top" Data="M0 0,3 0,5 4,3 8,0 8,3 4" Fill="#9918AABD" />
<Path Margin="16,13" HorizontalAlignment="Left" VerticalAlignment="Top" Data="M0 0,3 0,5 4,3 8,0 8,3 4" Fill="#5518AABD" />
<!-- 字体 -->
<TextBlock Margin="25,8" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="#18AABD" Text="{TemplateBinding Header}" FontSize="18"/>
<!-- 占位对象 -->
<ContentPresenter />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Border CornerRadius="5" Background="#14273a" Margin="10,5,10,10">
<GroupBox>
<Grid Grid.IsSharedSizeScope="True" Margin="10,5,10,10">
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border Background="#EEE" Height="1" VerticalAlignment="Bottom"/>
<Grid TextBlock.FontSize="15" TextBlock.FontWeight="Bold" TextBlock.Foreground="#EEE" Background="#14273a">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40"/>
<ColumnDefinition Width="70"/>
<ColumnDefinition Width="70"/>
<ColumnDefinition Width="120"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="120"/>
</Grid.ColumnDefinitions>
<TextBlock Text="序号" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="头像" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="用户名" Grid.Column="2" VerticalAlignment="Center" Margin="5,0"/>
<TextBlock Text="姓名" Grid.Column="3" VerticalAlignment="Center" Margin="5,0"/>
<TextBlock Text="地址" Grid.Column="4" VerticalAlignment="Center" Margin="5,0"/>
<TextBlock Text="性别" Grid.Column="5" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="角色" Grid.Column="6" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="状态" Grid.Column="7" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="操作" Grid.Column="8" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<!--编辑、分配权限、重置密码、删除-->
</Grid>
<ListBox ItemsSource="{Binding Users}" Grid.Row="1" BorderThickness="0" Background="#14273a">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border>
<ContentPresenter/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Background="Transparent" Name="root">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40"/>
<ColumnDefinition Width="70"/>
<ColumnDefinition Width="70"/>
<ColumnDefinition Width="120"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="120"/>
</Grid.ColumnDefinitions>
<!--间隔线-->
<!--<Border BorderBrush="#EEE" BorderThickness="0,0,0,1" Height="1" VerticalAlignment="Bottom" Grid.ColumnSpan="10" SnapsToDevicePixels="True"/>-->
<!--序号-->
<TextBlock Text="{Binding Index}" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="15" Foreground="White"/>
<!--头像-->
<Border Grid.Column="1" Width="38" Height="38"
CornerRadius="5" BorderBrush="White" BorderThickness="1"
Margin="0,8">
<Border.Effect>
<DropShadowEffect BlurRadius="10" ShadowDepth="0" Direction="0"
Color="Gray" Opacity="0.1"/>
</Border.Effect>
<Border.Background>
<ImageBrush ImageSource="{Binding UserIcon}"/>
</Border.Background>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Background="Transparent" Name="root">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40"/>
<ColumnDefinition Width="70"/>
<ColumnDefinition Width="70"/>
<ColumnDefinition Width="120"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="120"/>
</Grid.ColumnDefinitions>
<!--间隔线-->
<Border BorderBrush="#EEE" BorderThickness="0,0,0,1" Height="1" VerticalAlignment="Bottom" Grid.ColumnSpan="10" SnapsToDevicePixels="True"/>
<!--序号-->
<TextBlock Text="{Binding Index}" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="15"/>
<!--头像-->
<Border Grid.Column="1" Width="38" Height="38"
CornerRadius="5" BorderBrush="White" BorderThickness="1"
Margin="0,8">
<Border.Effect>
<DropShadowEffect BlurRadius="10" ShadowDepth="0" Direction="0"
Color="Gray" Opacity="0.1"/>
</Border.Effect>
<Border.Background>
<ImageBrush ImageSource="{Binding UserIcon}"/>
</Border.Background>
</Border>
<!--用户Name-->
<TextBlock Text="{Binding UserName}" VerticalAlignment="Center"
FontWeight="Bold" Foreground="#555" FontSize="15"
Grid.Column="2" Margin="5,0"/>
<!--姓名-->
<TextBlock Text="{Binding RealName}" VerticalAlignment="Center"
Foreground="#555" Grid.Column="3" Margin="5,0" FontSize="15"/>
<!--地址-->
<TextBlock Text="{Binding Address}" FontSize="15" Foreground="#888"
VerticalAlignment="Center" Margin="5,0"
Grid.Column="4"/>
<!--性别-->
<TextBlock Text="女" Name="tb_gender" Grid.Column="5" Foreground="#888"
VerticalAlignment="Center" HorizontalAlignment="Center"
FontSize="15"/>
<!--权限列表-->
<ItemsControl Grid.Column="6" ItemsSource="{Binding Roles}"
VerticalAlignment="Center" HorizontalAlignment="Center">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border Background="#77409EFE" Margin="3" CornerRadius="5">
<TextBlock Text="{Binding RoleName}" FontSize="12"
Margin="5,2" Foreground="White"/>
<!--用户Name-->
<TextBlock Text="{Binding UserName}" VerticalAlignment="Center"
FontWeight="Bold" Foreground="White" FontSize="15"
Grid.Column="2" Margin="5,0"/>
<!--姓名-->
<TextBlock Text="{Binding RealName}" VerticalAlignment="Center"
Foreground="White" Grid.Column="3" Margin="5,0" FontSize="15"/>
<!--地址-->
<TextBlock Text="{Binding Address}" FontSize="15" Foreground="White"
VerticalAlignment="Center" Margin="5,0"
Grid.Column="4"/>
<!--性别-->
<TextBlock Text="女" Name="tb_gender" Grid.Column="5" Foreground="White"
VerticalAlignment="Center" HorizontalAlignment="Center"
FontSize="15"/>
<!--权限列表-->
<ItemsControl Grid.Column="6" ItemsSource="{Binding Roles}"
VerticalAlignment="Center" HorizontalAlignment="Center">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border Background="#77409EFE" Margin="3" CornerRadius="5">
<TextBlock Text="{Binding RoleName}" FontSize="12"
Margin="5,2" Foreground="White"/>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<!--状态-->
<TextBlock Text="锁定" Name="tb_status" Grid.Column="7" Foreground="White"
VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="15"/>
<!--操作-->
<StackPanel Grid.Column="8" VerticalAlignment="Center"
HorizontalAlignment="Center"
Orientation="Horizontal">
<TextBlock VerticalAlignment="Center">
<Hyperlink Command="{Binding DataContext.ModifyCommand,RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}" FontSize="15"
TextDecorations="None" Foreground="#E0FFFF">编辑</Hyperlink>
</TextBlock>
<TextBlock Margin="5,3">
<Hyperlink Command="{Binding DataContext.DeleteCommand,RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}" FontSize="15"
TextDecorations="None" Foreground="#E0FFFF">删除</Hyperlink>
</TextBlock>
<ToggleButton Content="&#xe60b;" FontFamily="{StaticResource Icons}"
Style="{StaticResource MoreButtonStyle}"
Name="tb_more"/>
</StackPanel>
<Popup StaysOpen="False" IsOpen="{Binding ElementName=tb_more,Path=IsChecked}" PlacementTarget="{Binding ElementName=tb_more}" AllowsTransparency="True"
HorizontalOffset="-100" VerticalOffset="2">
<Border Width="120" Background="#F0F6FB" CornerRadius="3" Margin="5">
<Border.Effect>
<DropShadowEffect BlurRadius="10" ShadowDepth="0" Direction="0" Color="Gray" Opacity="0.1"/>
</Border.Effect>
<Grid Margin="2">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition Height="auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border Height="1" Background="#DDD" Grid.Row="2" Margin="0,3"/>
<Button Content="编辑角色" Style="{StaticResource MoreMenuButtonStyle}" FontSize="15"
Command="{Binding DataContext.SelectRoleCommand,RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}"/>
<Button Content="重置密码" Grid.Row="1" Style="{StaticResource MoreMenuButtonStyle}" FontSize="15"
Command="{Binding DataContext.ResetPasswordCommand,RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}"/>
<Button Content="{Binding LockButtonText}" Grid.Row="3" Style="{StaticResource MoreMenuButtonStyle}" FontSize="15"
Command="{Binding DataContext.LockUserCommand,RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}"/>
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<!--状态-->
<TextBlock Text="锁定" Name="tb_status" Grid.Column="7" Foreground="#888"
VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="15"/>
<!--操作-->
<StackPanel Grid.Column="8" VerticalAlignment="Center"
HorizontalAlignment="Center"
Orientation="Horizontal">
<TextBlock VerticalAlignment="Center">
<Hyperlink Command="{Binding DataContext.ModifyCommand,RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}" FontSize="15"
TextDecorations="None" Foreground="#409EFE">编辑</Hyperlink>
</TextBlock>
<TextBlock Margin="5,3">
<Hyperlink Command="{Binding DataContext.DeleteCommand,RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}" FontSize="15"
TextDecorations="None" Foreground="#409EFE">删除</Hyperlink>
</TextBlock>
<ToggleButton Content="&#xe60b;" FontFamily="{StaticResource Icons}"
Style="{StaticResource MoreButtonStyle}"
Name="tb_more"/>
</StackPanel>
<Popup StaysOpen="False" IsOpen="{Binding ElementName=tb_more,Path=IsChecked}" PlacementTarget="{Binding ElementName=tb_more}" AllowsTransparency="True"
HorizontalOffset="-100" VerticalOffset="2">
<Border Width="120" Background="#F0F6FB" CornerRadius="3" Margin="5">
<Border.Effect>
<DropShadowEffect BlurRadius="10" ShadowDepth="0" Direction="0" Color="Gray" Opacity="0.1"/>
</Border.Effect>
<Grid Margin="2">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition Height="auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border Height="1" Background="#DDD" Grid.Row="2" Margin="0,3"/>
<Button Content="编辑角色" Style="{StaticResource MoreMenuButtonStyle}" FontSize="15"
Command="{Binding DataContext.SelectRoleCommand,RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}"/>
<Button Content="重置密码" Grid.Row="1" Style="{StaticResource MoreMenuButtonStyle}" FontSize="15"
Command="{Binding DataContext.ResetPasswordCommand,RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}"/>
<Button Content="{Binding LockButtonText}" Grid.Row="3" Style="{StaticResource MoreMenuButtonStyle}" FontSize="15"
Command="{Binding DataContext.LockUserCommand,RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}"/>
</Grid>
</Border>
</Popup>
</Grid>
<DataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="root" Property="Background" Value="#F7F9FA"/>
</Trigger>
<DataTrigger Binding="{Binding Gender}" Value="1">
<Setter TargetName="tb_gender" Property="Text" Value="男"/>
</DataTrigger>
<DataTrigger Binding="{Binding Status}" Value="1">
<Setter TargetName="tb_status" Property="Text" Value="正常"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
</Popup>
</Grid>
<DataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="root" Property="Background" Value="#11409EFE"/>
</Trigger>
<DataTrigger Binding="{Binding Gender}" Value="1">
<Setter TargetName="tb_gender" Property="Text" Value="男"/>
</DataTrigger>
<DataTrigger Binding="{Binding Status}" Value="1">
<Setter TargetName="tb_status" Property="Text" Value="正常"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ListBox>
</Grid>
</Grid>
</GroupBox>
</Border>
</UserControl>