Files
MobilePhoneGrippingCuttingT…/EmergencyStopWindow.xaml

527 lines
28 KiB
Plaintext
Raw Normal View History

2026-04-20 11:51:33 +08:00
<Window x:Class="EmptyLoadTest.EmergencyStopWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:EmptyLoadTest"
xmlns:oxy="http://oxyplot.org/wpf"
mc:Ignorable="d"
Title="负载测试" Height="700" Width="1000"
WindowStartupLocation="CenterScreen"
Background="#F5F7FA" Loaded="Window_Loaded">
<Window.Resources>
<!-- 紧凑的样式定义 -->
<Style x:Key="AlertTitleStyle" TargetType="TextBlock">
<Setter Property="FontSize" Value="24"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="Margin" Value="0,10,0,5"/>
</Style>
<Style x:Key="TextBoxStyle" TargetType="TextBox">
<Setter Property="Height" Value="40"/>
<Setter Property="Width" Value="180"/>
<Setter Property="FontSize" Value="18"/>
<Setter Property="TextAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="BorderBrush" Value="#D5D8DC"/>
<Setter Property="BorderThickness" Value="2"/>
<Setter Property="Background" Value="#FFFFFF"/>
<Setter Property="Foreground" Value="#2C3E50"/>
<Setter Property="Padding" Value="10,5"/>
<Style.Triggers>
<Trigger Property="IsFocused" Value="True">
<Setter Property="BorderBrush" Value="#3498DB"/>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="WarningStyle" TargetType="TextBlock">
<Setter Property="FontSize" Value="16"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="Foreground" Value="#E74C3C"/>
<Setter Property="Margin" Value="0,2"/>
</Style>
<Style x:Key="DataLabelStyle" TargetType="TextBlock">
<Setter Property="FontSize" Value="14"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Foreground" Value="#34495E"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Margin" Value="0,0,5,0"/>
</Style>
<Style x:Key="DataValueStyle" TargetType="TextBlock">
<Setter Property="FontSize" Value="16"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Foreground" Value="#2C3E50"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
<Style x:Key="RealTimeValueStyle" TargetType="TextBlock">
<Setter Property="FontSize" Value="20"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Foreground" Value="#27AE60"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
<Style x:Key="UnitStyle" TargetType="TextBlock">
<Setter Property="FontSize" Value="12"/>
<Setter Property="Foreground" Value="#7F8C8D"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Margin" Value="3,0,0,0"/>
<Setter Property="FontStyle" Value="Italic"/>
</Style>
<!-- 紧凑按钮样式 -->
<Style x:Key="CompactButtonStyle" TargetType="Button">
<Setter Property="Height" Value="32"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="10,3"/>
<Setter Property="Margin" Value="3"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="border" Background="{TemplateBinding Background}"
CornerRadius="4">
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="Background">
<Setter.Value>
<SolidColorBrush Color="#3498DB"/>
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ControlButtonStyle" TargetType="Button" BasedOn="{StaticResource CompactButtonStyle}">
<Setter Property="Height" Value="36"/>
<Setter Property="FontSize" Value="13"/>
<Setter Property="Padding" Value="15,5"/>
</Style>
<Style x:Key="StartButtonStyle" TargetType="Button" BasedOn="{StaticResource ControlButtonStyle}">
<Setter Property="Background" Value="#2ECC71"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="border" Background="#2ECC71" CornerRadius="4">
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="Background" Value="#27AE60"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ClearButtonStyle" TargetType="Button" BasedOn="{StaticResource ControlButtonStyle}">
<Setter Property="Background" Value="#E74C3C"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="border" Background="#E74C3C" CornerRadius="4">
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="Background" Value="#C0392B"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ReportButtonStyle" TargetType="Button" BasedOn="{StaticResource CompactButtonStyle}">
<Setter Property="Background" Value="#3498DB"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="border" Background="#3498DB" CornerRadius="4">
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="Background" Value="#2980B9"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ExitButtonStyle" TargetType="Button" BasedOn="{StaticResource CompactButtonStyle}">
<Setter Property="Background" Value="#95A5A6"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="border" Background="#95A5A6" CornerRadius="4">
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="Background" Value="#7F8C8D"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- 紧凑卡片样式 -->
<Style x:Key="CompactCardStyle" TargetType="Border">
<Setter Property="Background" Value="#FFFFFF"/>
<Setter Property="CornerRadius" Value="8"/>
<Setter Property="BorderBrush" Value="#E5E8E8"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="12"/>
<Setter Property="Margin" Value="5"/>
</Style>
<Style x:Key="SectionTitleStyle" TargetType="TextBlock">
<Setter Property="FontSize" Value="15"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Foreground" Value="#34495E"/>
<Setter Property="Margin" Value="0,0,0,8"/>
</Style>
</Window.Resources>
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- 顶部:标题和警告区域 -->
<Border Grid.Row="0" Style="{StaticResource CompactCardStyle}" Margin="5,5,5,8">
<StackPanel>
<TextBox Name="t0" Width="0" Height="0"></TextBox>
<TextBlock Text="负载测试" Style="{StaticResource AlertTitleStyle}"
Foreground="#2C3E50"/>
<!-- 警告信息 -->
<Grid Margin="0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="92"/>
<ColumnDefinition Width="18"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- 警告图标 -->
<Border Visibility="Hidden" Name="shacheB" Grid.Column="0" Background="#E74C3C"
CornerRadius="15" Width="100" Height="30"
VerticalAlignment="Top" Margin="0,-41,10,0" Grid.ColumnSpan="2">
<TextBlock Name ="shache" Text="" FontSize="18" FontWeight="Bold"
Foreground="White" HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
<!-- 警告图标 -->
<Border Name="fastleftB" Grid.Column="0" Background="#E74C3C"
CornerRadius="15" Width="100" Height="30"
VerticalAlignment="Center" Margin="0,0,10,0" Grid.ColumnSpan="2">
<TextBlock Name ="fastleft" Text="" FontSize="18" FontWeight="Bold"
Foreground="White" HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
<!-- 警告文本 -->
<StackPanel Grid.Column="2">
<TextBlock Name="faststop" Text="急停已按下" Visibility="Hidden" Style="{StaticResource WarningStyle}"/>
<TextBlock Name="limit" Text="到达电机极限!更换摩擦片" Style="{StaticResource WarningStyle}"/>
</StackPanel>
</Grid>
<!-- 实时转速 -->
<Grid Margin="0,8,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="实时转速:" Style="{StaticResource DataLabelStyle}"
Grid.Column="0" VerticalAlignment="Center"/>
<Border Grid.Column="1" Background="#F8F9F9" CornerRadius="6"
Padding="15,8" Margin="5,0">
<TextBlock Name="actualSpeed" Text="1500" Style="{StaticResource RealTimeValueStyle}"/>
</Border>
<TextBlock Text="Rad/Min" Style="{StaticResource UnitStyle}"
Grid.Column="2" VerticalAlignment="Center"/>
</Grid>
</StackPanel>
</Border>
<!-- 中间:主要数据和控制区域 -->
<Grid Grid.Row="1" Margin="0,0,0,8">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.5*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- 左侧:扭矩和速度数据 -->
<Border Grid.Column="0" Style="{StaticResource CompactCardStyle}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Text="实时监控数据" Style="{StaticResource SectionTitleStyle}" Grid.Row="0"/>
<!-- 数据网格 -->
<Grid Grid.Row="1" Margin="0,5">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- 实时扭矩 -->
<Grid Grid.Row="0" Margin="0,0,0,6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="实时扭矩:" Style="{StaticResource DataLabelStyle}"
Grid.Column="0" VerticalAlignment="Center"/>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<TextBlock Name="force" Text="125.5" Style="{StaticResource DataValueStyle}"/>
<TextBlock Text="N.cm" Style="{StaticResource UnitStyle}"/>
</StackPanel>
</Grid>
<!-- 设定扭矩 -->
<Grid Grid.Row="1" Margin="0,0,0,6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="设定扭矩:" Style="{StaticResource DataLabelStyle}"
Grid.Column="0" VerticalAlignment="Center"/>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<TextBox Name="settingforce" Text="120.0" Style="{StaticResource TextBoxStyle}" GotFocus="settingforce_GotFocus"/>
<TextBlock Text="N.cm" Style="{StaticResource UnitStyle}"/>
</StackPanel>
</Grid>
<!-- 加载速度 -->
<Grid Grid.Row="2" Margin="0,0,0,6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="加载速度:" Style="{StaticResource DataLabelStyle}"
Grid.Column="0" VerticalAlignment="Center"/>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<TextBox Name="speed" Text="2.5" Style="{StaticResource TextBoxStyle}" GotFocus="speed_GotFocus"/>
<TextBlock Text="mm/s" Style="{StaticResource UnitStyle}"/>
</StackPanel>
</Grid>
<!-- 最大扭矩 -->
<Grid Grid.Row="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="最大扭矩:" Style="{StaticResource DataLabelStyle}"
Grid.Column="0" VerticalAlignment="Center"/>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<TextBlock Name="maxforce" Text="130.2" Style="{StaticResource DataValueStyle}"/>
<TextBlock Text="N.cm" Style="{StaticResource UnitStyle}"/>
</StackPanel>
</Grid>
</Grid>
<!-- 测试结果 -->
<StackPanel Grid.Row="2" Margin="0,10,0,0">
<TextBlock Text="测试结果" Style="{StaticResource SectionTitleStyle}"/>
<!-- 到达设定扭矩时的转速 -->
<Grid Margin="0,0,0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="到达设定扭矩转速:" Style="{StaticResource DataLabelStyle}"
Grid.Column="0" VerticalAlignment="Center"/>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<Border Background="#F8F9F9" CornerRadius="4" Padding="8,4" Margin="2,0">
<TextBlock Name="reachforce" Text="1450" Style="{StaticResource DataValueStyle}"/>
</Border>
<TextBlock Text="Rad/Min" Style="{StaticResource UnitStyle}"/>
</StackPanel>
</Grid>
<!-- 最大扭矩时的转速 -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="最大扭矩转速:" Style="{StaticResource DataLabelStyle}"
Grid.Column="0" VerticalAlignment="Center"/>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<Border Background="#F8F9F9" CornerRadius="4" Padding="8,4" Margin="2,0">
<TextBlock Name="maxforce2" Text="1480" Style="{StaticResource DataValueStyle}"/>
</Border>
<TextBlock Text="Rad/Min" Style="{StaticResource UnitStyle}"/>
</StackPanel>
</Grid>
</StackPanel>
</Grid>
</Border>
<!-- 中间:控制面板 -->
<Border Grid.Column="1" Style="{StaticResource CompactCardStyle}">
<StackPanel>
<TextBlock Text="控制面板" Style="{StaticResource SectionTitleStyle}"/>
<!-- 前进后退 -->
<StackPanel Margin="0,5,0,10">
<TextBlock Text="前进后退" Style="{StaticResource DataLabelStyle}"
Margin="0,0,0,5"/>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<Button Content="前 进" Style="{StaticResource StartButtonStyle}"
Width="50" Margin="2" Click="Button_Click" PreviewMouseLeftButtonDown="上升_PreviewMouseLeftButtonDown"
PreviewMouseLeftButtonUp="上升_PreviewMouseLeftButtonUp"
LostMouseCapture="上升_LostMouseCapture" />
<Button Content="后 退" Style="{StaticResource StartButtonStyle}"
Width="50" Margin="2" Click="Button_Click_1" PreviewMouseLeftButtonDown="下降_PreviewMouseLeftButtonDown"
PreviewMouseLeftButtonUp="下降_PreviewMouseLeftButtonUp"
LostMouseCapture="下降_LostMouseCapture" />
<Button Content="开 始" Style="{StaticResource StartButtonStyle}"
Width="50" Margin="2" Click="Button_Click_2"/>
<Button Content="复位" Style="{StaticResource StartButtonStyle}"
Width="50" Margin="2" Click="Button_Click_3"/>
</StackPanel>
<TextBlock Text="将始复矩阵" Style="{StaticResource DataLabelStyle}"
FontSize="12" HorizontalAlignment="Center"
Margin="0,5,0,0" Foreground="#7F8C8D"/>
</StackPanel>
<!-- 行程表 -->
<StackPanel>
<TextBlock Text="行程表" Style="{StaticResource DataLabelStyle}" Margin="0,0,0,5"/>
<StackPanel>
<Button Content="过程报表" Style="{StaticResource ReportButtonStyle}"
Margin="3,2" Height="28" Click="Button_Click_5"/>
<Button Content="报 表" Style="{StaticResource ReportButtonStyle}"
Margin="3,2" Height="28" Click="Button_Click_4"/>
<Button Content="返 回" Style="{StaticResource ExitButtonStyle}"
Margin="3,2" Height="28" Click="Button_Click_6"/>
</StackPanel>
</StackPanel>
<!-- 扭矩-转速曲线按钮 -->
<!--<StackPanel Margin="0,15,0,0">
<TextBlock Text="扭矩-转速曲线" Style="{StaticResource DataLabelStyle}"
Margin="0,0,0,5"/>
<Button Content="显示曲线" Style="{StaticResource ReportButtonStyle}"
Margin="3" Height="30"/>
</StackPanel>-->
</StackPanel>
</Border>
<!-- 右侧:数据管理和图表预览 -->
<Border Grid.Column="2" Style="{StaticResource CompactCardStyle}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- 清除操作 -->
<StackPanel Grid.Row="0" Margin="0,0,0,10">
<TextBlock Text="清除操作" Style="{StaticResource SectionTitleStyle}"/>
<Button Content="清除数据" Style="{StaticResource ClearButtonStyle}"
Height="30" Margin="0,2" Click="Button_Click_7"/>
<TextBlock Text="清除所有测试数据" Style="{StaticResource DataLabelStyle}"
FontSize="11" HorizontalAlignment="Center"
Margin="0,3" Foreground="#7F8C8D"/>
</StackPanel>
<!-- 图表预览 -->
<Border Grid.Row="1" Background="#F8F9F9" CornerRadius="6"
BorderBrush="#D5D8DC" BorderThickness="1"
Margin="0,0,0,10">
<Grid>
<oxy:PlotView x:Name="plotView"/>
</Grid>
</Border>
<!-- 结果记录 -->
<StackPanel Grid.Row="2">
<TextBlock Text="结果记录" Style="{StaticResource SectionTitleStyle}"/>
<StackPanel>
<Button Content="导出结果" Style="{StaticResource ReportButtonStyle}"
Margin="3,2" Height="28" Click="Button_Click_8"/>
<!--<Button Content="打印报告" Style="{StaticResource ReportButtonStyle}"
Margin="3,2" Height="28" Click="Button_Click_9"/>-->
<!--<Button Content="数据备份" Style="{StaticResource ReportButtonStyle}"
Margin="3,2" Height="28"/>-->
</StackPanel>
</StackPanel>
</Grid>
</Border>
</Grid>
<!-- 底部状态栏 -->
<Border Grid.Row="2" Background="#2C3E50" CornerRadius="6" Padding="10,8">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Orientation="Horizontal">
<Border Name="stopB" Background="#27AE60" CornerRadius="3" Padding="6,3"
VerticalAlignment="Center" Margin="0,0,10,0">
<TextBlock Name="stop" Text="急停状态" Foreground="White" FontWeight="SemiBold" FontSize="12"/>
</Border>
<!--<TextBlock Text="急停已复位,系统可重新运行" Foreground="#ECF0F1"
VerticalAlignment="Center" FontSize="12"/>-->
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<TextBlock Text="状态:" Foreground="#ECF0F1"
VerticalAlignment="Center" Margin="0,0,5,0" FontSize="12"/>
<Border Name="statusB" Background="#27AE60" CornerRadius="3"
Padding="6,3" VerticalAlignment="Center">
<TextBlock Name="status" Text="就绪" Foreground="White" FontWeight="SemiBold" FontSize="12"/>
</Border>
<TextBlock Text=" | " Foreground="#7F8C8D"
VerticalAlignment="Center" Margin="5,0" FontSize="12"/>
</StackPanel>
</Grid>
</Border>
</Grid>
</Window>