You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
RfidConveyorBelt/SlnMesnac.WPF/Page/IndexPage/ProductionLineUserControl.xaml

300 lines
19 KiB
XML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<UserControl x:Class="SlnMesnac.WPF.Page.IndexPage.ProductionLineUserControl"
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:SlnMesnac.WPF.ViewModel.IndexPage" xmlns:local1="clr-namespace:SlnMesnac.WPF.Converter.Generate"
mc:Ignorable="d"
d:DesignHeight="768" d:DesignWidth="1024">
<UserControl.Resources>
<ResourceDictionary>
<Style x:Key="DataGridTextColumnCenterSytle" TargetType="{x:Type TextBlock}">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="FontSize" Value="13"/>
</Style>
<!--<local1:RowToIndexConverter x:Key="RowToIndexConverter" />-->
<!-- 渐变画笔 -->
<LinearGradientBrush x:Key="PrimaryGradientBrush" StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="#2C3E50" Offset="0"/>
<GradientStop Color="#4A6282" Offset="1"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="CardGradientBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#FFFFFF" Offset="0"/>
<GradientStop Color="#F8F9FA" Offset="1"/>
</LinearGradientBrush>
<!-- 字体 -->
<FontFamily x:Key="DefaultFont">Microsoft YaHei UI</FontFamily>
<FontFamily x:Key="NumberFont">Segoe UI</FontFamily>
<!-- 文本样式 -->
<Style x:Key="HeaderTextStyle" TargetType="TextBlock">
<Setter Property="FontFamily" Value="{StaticResource DefaultFont}"/>
<Setter Property="FontSize" Value="18"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Foreground" Value="{StaticResource PrimaryGradientBrush}"/>
</Style>
<Style x:Key="LabelTextStyle" TargetType="TextBlock">
<Setter Property="FontFamily" Value="{StaticResource DefaultFont}"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="FontWeight" Value="Normal"/>
<Setter Property="Foreground" Value="#7F8C8D"/>
</Style>
<Style x:Key="ValueTextStyle" TargetType="TextBlock">
<Setter Property="FontFamily" Value="{StaticResource NumberFont}"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Foreground" Value="#2C3E50"/>
</Style>
<Style x:Key="NumberTextStyle" TargetType="TextBlock">
<Setter Property="FontFamily" Value="{StaticResource NumberFont}"/>
<Setter Property="FontSize" Value="20"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Foreground" Value="#2C3E50"/>
</Style>
<!-- 卡片样式 -->
<Style x:Key="LineCardStyle" TargetType="Border">
<Setter Property="Background" Value="{StaticResource CardGradientBrush}"/>
<Setter Property="CornerRadius" Value="12"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="#E0E0E0"/>
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect BlurRadius="10" ShadowDepth="2" Color="#40000000"/>
</Setter.Value>
</Setter>
<Setter Property="Margin" Value="8"/>
<Setter Property="Padding" Value="16"/>
</Style>
<!-- 成功状态样式 -->
<Style x:Key="SuccessTextStyle" TargetType="TextBlock">
<Setter Property="Foreground" Value="#00C851"/>
<Setter Property="FontWeight" Value="Bold"/>
<Style.Triggers>
<!-- 成功 = 红色 -->
<DataTrigger Binding="{Binding LastWriteState}" Value="失败">
<Setter Property="Foreground" Value="Red"/>
</DataTrigger>
<!-- 失败 = 绿色 -->
<DataTrigger Binding="{Binding LastWriteState}" Value="成功">
<Setter Property="Foreground" Value="#00C851"/>
</DataTrigger>
</Style.Triggers>
</Style>
<!-- RFID连接状态样式 -->
<Style x:Key="RFIDCounnectStyle" TargetType="TextBlock">
<Setter Property="Foreground" Value="#00C851"/>
<Setter Property="FontWeight" Value="Bold"/>
<Style.Triggers>
<!-- 成功 = 红色 -->
<DataTrigger Binding="{Binding RFIDConnectState}" Value="未连接">
<Setter Property="Foreground" Value="Red"/>
</DataTrigger>
<!-- 失败 = 绿色 -->
<DataTrigger Binding="{Binding RFIDConnectState}" Value="已连接">
<Setter Property="Foreground" Value="#00C851"/>
</DataTrigger>
</Style.Triggers>
</Style>
<!-- 生产中状态样式 -->
<Style x:Key="ProducingTextStyle" TargetType="TextBlock">
<Setter Property="Foreground" Value="#00C851"/>
<Setter Property="FontWeight" Value="Bold"/>
</Style>
</ResourceDictionary>
</UserControl.Resources>
<Grid>
<!-- 主布局 -->
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- 标题栏 -->
<Border Grid.Row="0"
Background="{StaticResource PrimaryGradientBrush}"
Padding="20,12">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<!-- 系统图标和标题 -->
<StackPanel Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center">
<Path Data="M12,2C6.48,2,2,6.48,2,12s4.48,10,10,10s10-4.48,10-10S17.52,2,12,2z M12,20c-4.41,0-8-3.59-8-8s3.59-8,8-8s8,3.59,8,8S16.41,20,12,20z M13,7h-2v6h6v-2h-4V7z"
Fill="White"
Width="24"
Height="24"
Margin="0,0,12,0"/>
<TextBlock Text="输送带RFID数字化信息系统"
FontSize="24"
FontWeight="Bold"
Foreground="White"/>
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Right">
<!--<Button
Content="查询" Width="200" Visibility="Hidden" FontSize="20" Command="{Binding GetOrderInfoCommand}" CommandParameter="{Binding Name,ElementName=Search}"
Background="#009999" Margin="0 0 100 0"/>-->
<TextBlock Text="当前连接状态:" FontSize="15" Foreground="White" Margin="0,0,8,0"/>
<TextBlock Text="{Binding RFIDConnectState,Mode=TwoWay}" FontSize="15" Style="{StaticResource RFIDCounnectStyle}" Margin="0,0,8,0"/>
<TextBlock Text="上次写入状态:" FontSize="15" Foreground="White" Margin="0,0,8,0"/>
<TextBlock Text="{Binding LastWriteState,Mode=TwoWay}" FontSize="15" Style="{StaticResource SuccessTextStyle}" Margin="0,0,8,0"/>
<TextBlock Text="状态:" FontSize="15" Foreground="White" Margin="0,0,8,0"/>
<TextBlock Text="{Binding WorkState,Mode=TwoWay}" FontSize="15" Foreground="White" Margin="0,0,8,0"/>
</StackPanel>
<!-- 当前时间 -->
<StackPanel Grid.Column="2" Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Text="当前时间:"
Foreground="White"
FontSize="15"
Margin="0,0,8,0"/>
<TextBlock x:Name="CurrentTimeText"
Text="{Binding CurrentDateTime, StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}"
Foreground="White"
FontSize="15"
FontWeight="Bold"/>
</StackPanel>
</Grid>
</Border>
<!-- 主要内容区域 -->
<!--<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto" Padding="20">-->
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- 左半部分:准备写入的标签 -->
<Grid Grid.Column="0">
<Border BorderThickness="1" BorderBrush="#E0E0E0" CornerRadius="4" Margin="0,10,0,0">
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- 面板标题 -->
<Grid Grid.Row="0" >
<WrapPanel Orientation="Horizontal" ItemHeight="50">
<TextBlock Text="RFID写入列表" FontSize="15" VerticalAlignment="Center" Margin="10,0,0,0"/>
<Label Content="产线:" FontSize="15" Foreground="Black" VerticalAlignment="Center" Margin="10,0,0,0"/>
<ComboBox ItemsSource="{Binding Items}" Width="100" Height="30" FontSize="15" SelectedItem="{Binding QueryIsCheck,Mode=TwoWay}" Margin="10,0,0,0" Foreground="Black"/>
<Label Content="订单号:" FontSize="15" Foreground="Black" VerticalAlignment="Center" Margin="10,0,0,0"/>
<TextBox IsReadOnly="False" IsEnabled="True" Text="{Binding OrderNo,Mode=TwoWay}" Width="100" Height="30" FontSize="15" Foreground="Black" Margin="0,0,0,0" />
<Label Content="产线号:" FontSize="15" Foreground="Black" VerticalAlignment="Center" Margin="10,0,0,0"/>
<TextBox IsReadOnly="False" IsEnabled="True" Text="{Binding LineNo,Mode=TwoWay}" Width="100" Height="30" FontSize="15" Foreground="Black" Margin="0,0,0,0" />
<Label Content="带号:" FontSize="15" Foreground="Black" VerticalAlignment="Center" Margin="10,0,0,0"/>
<TextBox IsReadOnly="False" IsEnabled="True" Text="{Binding BindNo,Mode=TwoWay}" Width="100" Height="30" FontSize="15" Foreground="Black" Margin="0,0,0,0" />
<Label Content="写入数量:" FontSize="15" Foreground="Black" VerticalAlignment="Center" Margin="10,0,0,0"/>
<TextBox IsReadOnly="False" IsEnabled="True" Text="{Binding WriteCount,Mode=TwoWay}" Width="100" Height="30" FontSize="15" Foreground="Black" Margin="0,0,0,0" />
<Button Content="生成编码" Width="100" Height="30" FontSize="15" Command="{Binding GenerateCodeCommand}" Background="#009999" Style="{StaticResource BUTTON_AGREE}" Margin="10,0,0,0"/>
<Button Content="清除数据" Width="100" Height="30" FontSize="15" Command="{Binding ListClearCommand}" Background="OrangeRed" Style="{StaticResource BUTTON_AGREE}" Margin="10,0,0,0"/>
<!--<Button Content="自动写入" Width="100" Height="30" FontSize="15" Command="{Binding AutoWriteCommand}" Background="#009999" Style="{StaticResource BUTTON_AGREE}" Margin="10,0,0,0"/>-->
</WrapPanel>
</Grid>
<!-- 数据表格绑定ViewModel中的历史记录 -->
<Grid Grid.Row="1">
<ScrollViewer VerticalScrollBarVisibility="Auto" Padding="0">
<DataGrid x:Name="PrePareWriteDataGrid" Grid.Row="0" ItemsSource="{Binding PreparedWriteList}" Background="#00000000"
ColumnHeaderHeight="35" Height="{Binding Path=ActualHeight, ElementName=ScanPanel}"
RowHeight="50" AutoGenerateColumns="False" RowHeaderWidth="0" FontSize="15"
GridLinesVisibility="None" ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Auto" BorderThickness="0" CanUserAddRows="False" SelectionMode="Single" IsReadOnly="True" VerticalScrollBarVisibility="Auto"
Foreground="Black">
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="Background" Value="Transparent"/>
</Style>
</DataGrid.ColumnHeaderStyle>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding serialno}" Header="编号" Width="100" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding rfidascii}" Header="RFID编码" Width="6*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding writestatus}" Header="状态" Width="70" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTemplateColumn Header="操作" Width="100">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="写入" Width="70" Height="30" FontSize="15" Background="DarkSeaGreen" Command="{Binding DataContext.RFIDWriteCommand, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"
CommandParameter="{Binding}" Style="{StaticResource BUTTON_AGREE}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
</Grid>
</Grid>
</Border>
</Grid>
<!-- 右半部分最近10条RFID读写记录 -->
<Grid Grid.Column="1">
<Border BorderThickness="1" BorderBrush="#E0E0E0" CornerRadius="4" Margin="0,10,0,0">
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="50px"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- 面板标题 -->
<Grid Grid.Row="0" >
<WrapPanel Orientation="Horizontal" ItemHeight="50">
<TextBlock Text="RFID写入记录" FontSize="15" VerticalAlignment="Center" Margin="10,0,0,0"/>
<Button Content="清除列表" Width="100" Height="30" FontSize="15" Command="{Binding HistoryClearCommand}" Background="OrangeRed" Style="{StaticResource BUTTON_AGREE}" Margin="10,0,0,0"/>
<Button Content="查看历史" Width="100" Height="30" FontSize="15" Command="{Binding HistoryPageCommand}" Background="BlueViolet" Style="{StaticResource BUTTON_AGREE}" Margin="10,0,0,0"/>
</WrapPanel>
</Grid>
<!-- 数据表格绑定ViewModel中的历史记录 -->
<Grid Grid.Row="1">
<ScrollViewer VerticalScrollBarVisibility="Auto" Padding="0">
<DataGrid x:Name="senorlistDataGrid" Grid.Row="0" ItemsSource="{Binding TempRecordList}" Background="#00000000"
ColumnHeaderHeight="35" Height="{Binding Path=ActualHeight, ElementName=ScanPanel}"
RowHeight="50" AutoGenerateColumns="False" RowHeaderWidth="0" FontSize="15"
GridLinesVisibility="None" ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Auto" BorderThickness="0" CanUserAddRows="False" SelectionMode="Single" IsReadOnly="True" VerticalScrollBarVisibility="Auto"
Foreground="Black">
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="Background" Value="Transparent"/>
</Style>
</DataGrid.ColumnHeaderStyle>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding lineno}" Header="产线号" Width="70" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding rfidepc}" Header="原始EPC" Width="3*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding rfidascii}" Header="RFID编码" Width="3*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding writetime,StringFormat=\{0:yyyy-MM-dd HH:mm:ss\}}" Header="写入时间" Width="180" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
</Grid>
</Grid>
</Border>
</Grid>
</Grid>
</Grid>
</UserControl>