添加 MX-PD-盘古 项目文件
将 MX-PD-盘古 - new 目录下的所有文件添加到主仓库
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.CameraFusionCalibVerifyView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
xmlns:mwControls="http://www.maxwell-gp.com/"
|
||||
mc:Ignorable="d"
|
||||
xmlns:view="clr-namespace:MainShell.Common.Display.View"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<ContentControl Grid.Column="0" Content="{Binding CameraAxisViewModelSevice}"/>
|
||||
|
||||
<Grid Grid.Column="1">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<GroupBox Style="{StaticResource GroupBoxSecondary}" Margin="3,3,3,3" IsEnabled="{Binding Motion.IsFinish}" Grid.ColumnSpan="2">
|
||||
<GroupBox.Header>
|
||||
<TextBlock Text="WS运动系标定位置" VerticalAlignment="Center" FontWeight="Bold" />
|
||||
</GroupBox.Header>
|
||||
<UniformGrid Grid.Row="0" Rows="2">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="140"/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="WS平台标定X1(mm):" Width="200" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Tag="WS平台标定X1" Value="{Binding WsFusionCalibParItem.MoveAxisPos}" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="75" Height="35" />
|
||||
<Button Grid.Column="3" Tag="WS平台标定X1-移到此位置" Content="移到此位置" Click="{mwControls:Action btnMoveWSCalibPosPosition}" HorizontalAlignment="Left" />
|
||||
</Grid>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1.6*"/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition Width="1.5*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="X2:" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding WsFusionCalibParItem.ApproachXPos}" IsReadOnly="True" Background="LightGray" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="75" Height="35" />
|
||||
<Label Content="Y1:" Grid.Column="2" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding WsFusionCalibParItem.ApproachYPos}" IsReadOnly="True" Background="LightGray" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="3" HorizontalAlignment="Left" Margin="5" Width="75" Height="35" />
|
||||
<!--<Button Grid.Column="5" Tag="WS平台标定X1-中心对齐" Content="中心对齐" Click="{mwControls:Action btnApproachWSCalibPosition}" HorizontalAlignment="Left" />-->
|
||||
</Grid>
|
||||
</UniformGrid>
|
||||
</GroupBox>
|
||||
<GroupBox Grid.Row="2" Style="{StaticResource GroupBoxSecondary}" Margin="3" IsEnabled="{Binding Motion.IsFinish}">
|
||||
<GroupBox.Header>
|
||||
<TextBlock Text="WS运动位置" VerticalAlignment="Center" FontWeight="Bold" />
|
||||
</GroupBox.Header>
|
||||
<UniformGrid Rows="5" Columns="1">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="StartX(mm):" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding WsFusionCalibParItem.StartX}" IsReadOnly="True" Background="LightGray" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
<Label Content="StartY(mm):" Grid.Column="2" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding WsFusionCalibParItem.StartY}" IsReadOnly="True" Background="LightGray" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="3" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
</Grid>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Grid.Column="3" Content="设置起点" Click="{mwControls:Action btnMoveToCenter}" HorizontalAlignment="Left" />
|
||||
</Grid>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="Step(mm):" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding WsFusionCalibParItem.Step}" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
<Button Grid.Column="3" Content="移动到起点" Click="{mwControls:Action btnMoveToStartPoint}" HorizontalAlignment="Left" />
|
||||
</Grid>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="CountX:" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:IntNumberBox Value="{Binding WsFusionCalibParItem.CountX}" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
<Label Content="CountY:" Grid.Column="2" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:IntNumberBox Value="{Binding WsFusionCalibParItem.CountY}" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="3" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
</Grid>
|
||||
<Grid>
|
||||
<Button Content="开始飞拍" Click="{mwControls:Action btnMoveWafer}" Grid.Column="0" Margin="10 5" IsEnabled="{Binding Motion.IsFinish}" />
|
||||
</Grid>
|
||||
<Grid>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
<Button Content="以当前相机位置验证" Click="{mwControls:Action btnVerifyWafer}" Margin="10 5" IsEnabled="{Binding Motion.IsFinish}" Width="150"/>
|
||||
<Button Content="停止" Tag="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Content}" Click="{mwControls:Action btnStopVerifyWafer}" HorizontalAlignment="Right"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</UniformGrid>
|
||||
</GroupBox>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,34 @@
|
||||
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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// CameraFusionCalibVerifyView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class CameraFusionCalibVerifyView : UserControl
|
||||
{
|
||||
public CameraFusionCalibVerifyView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
|
||||
public void CalibVerify()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,194 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.CameraFusionCalibView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
xmlns:mwControls="http://www.maxwell-gp.com/"
|
||||
Loaded="{mwControls:Action viewLoad}"
|
||||
Unloaded="{mwControls:Action viewUnLoad}"
|
||||
xmlns:view="clr-namespace:MainShell.Common.Display.View"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="600" d:DesignWidth="800">
|
||||
<!--<UserControl.Resources>
|
||||
--><!--<convert:CameraTypeToBoolConverter x:Key="CameraTypeToBoolConverter"/>--><!--
|
||||
<Style x:Key="CommonLableStyle" TargetType="Label" BasedOn="{StaticResource {x:Type Label}}">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Right"/>
|
||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||
<Setter Property="Margin" Value="3"/>
|
||||
<Setter Property="Height" Value="35"/>
|
||||
<Setter Property="Width" Value="120"/>
|
||||
</Style>
|
||||
<Style TargetType="ComboBox" BasedOn="{StaticResource {x:Type ComboBox}}">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Left"/>
|
||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||
<Setter Property="Margin" Value="3"/>
|
||||
<Setter Property="Height" Value="35"/>
|
||||
<Setter Property="Width" Value="120"/>
|
||||
</Style>
|
||||
<Style TargetType="Button" BasedOn="{StaticResource {x:Type Button}}" >
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Center"/>
|
||||
<Setter Property="Margin" Value="3"/>
|
||||
<Setter Property="Height" Value="35"/>
|
||||
<Setter Property="Width" Value="110"/>
|
||||
</Style>
|
||||
</UserControl.Resources>-->
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<ContentControl Grid.Column="0" Content="{Binding CameraAxisViewModelSevice}"/>
|
||||
|
||||
<Grid Grid.Column="1">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<GroupBox Style="{StaticResource GroupBoxSecondary}" Margin="3,3,3,3" IsEnabled="{Binding Motion.IsFinish}" Grid.ColumnSpan="2">
|
||||
<GroupBox.Header>
|
||||
<TextBlock Text="WS运动系标定位置" VerticalAlignment="Center" FontWeight="Bold" />
|
||||
</GroupBox.Header>
|
||||
<UniformGrid Grid.Row="0" Rows="2">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="140"/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="WS平台标定X1(mm):" Width="200" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Tag="WS平台标定X1" Value="{Binding WsFusionCalibParItem.MoveAxisPos}" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="75" Height="35" />
|
||||
<Button Grid.Column="3" Tag="WS平台标定X1-移到此位置" Content="移到此位置" Click="{mwControls:Action btnMoveWSCalibPosPosition}" HorizontalAlignment="Left" />
|
||||
</Grid>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1.6*"/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition Width="1.5*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="X2:" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding WsFusionCalibParItem.ApproachXPos}" IsReadOnly="True" Background="LightGray" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="75" Height="35" />
|
||||
<Label Content="Y1:" Grid.Column="2" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding WsFusionCalibParItem.ApproachYPos}" IsReadOnly="True" Background="LightGray" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="3" HorizontalAlignment="Left" Margin="5" Width="75" Height="35" />
|
||||
<Button Grid.Column="5" Tag="WS平台标定X1-中心对齐" Content="中心对齐" Click="{mwControls:Action btnApproachWSCalibPosition}" HorizontalAlignment="Left" />
|
||||
</Grid>
|
||||
</UniformGrid>
|
||||
</GroupBox>
|
||||
<GroupBox Grid.Row="1" Style="{StaticResource GroupBoxSecondary}" Margin="3,3,3,3" IsEnabled="{Binding Motion.IsFinish}" Grid.ColumnSpan="2">
|
||||
<GroupBox.Header>
|
||||
<TextBlock Text="相机起始位置" VerticalAlignment="Center" FontWeight="Bold" />
|
||||
</GroupBox.Header>
|
||||
<UniformGrid Grid.Row="0" Rows="2">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="CameraX(mm):" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Center" />
|
||||
<mwControls:NumberBox Tag="CameraX" Value="{Binding WsFusionCalibParItem.CameraAxisPos}" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Center" Margin="5" Width="120" Height="35" />
|
||||
<Button Grid.Column="3" Tag="计算相机起始位置" Content="计算位置" Click="{mwControls:Action btnCalculateCameraPosition}" HorizontalAlignment="Left" />
|
||||
</Grid>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Grid.Column="1" Tag="相机起始位置-读取当前位置" Content="读取当前位置" Click="{mwControls:Action btnSetCameraPosition}" HorizontalAlignment="Left" />
|
||||
<Button Grid.Column="3" Tag="相机起始位置-移到此位置" Content="移到此位置" Click="{mwControls:Action btnMoveCameraPosition}" HorizontalAlignment="Left" />
|
||||
</Grid>
|
||||
</UniformGrid>
|
||||
</GroupBox>
|
||||
<GroupBox Grid.Row="2" Style="{StaticResource GroupBoxSecondary}" Margin="3,3,3,3" IsEnabled="{Binding Motion.IsFinish}" Grid.ColumnSpan="2">
|
||||
<GroupBox.Header>
|
||||
<TextBlock Text="WS起始位置" VerticalAlignment="Center" FontWeight="Bold" />
|
||||
</GroupBox.Header>
|
||||
<UniformGrid Rows="2">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="StartX(mm):" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding WsFusionCalibParItem.StartX}" IsReadOnly="True" Background="LightGray" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
<Label Content="StartY(mm):" Grid.Column="2" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding WsFusionCalibParItem.StartY}" IsReadOnly="True" Background="LightGray" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="3" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
</Grid>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Grid.Column="0" Tag="WS起始位置-计算当前位置" Content="计算位置" Click="{mwControls:Action btnCalculateWSPosition}" HorizontalAlignment="Left" Grid.ColumnSpan="2" Margin="3,0,0,0" />
|
||||
<Button Grid.Column="1" Tag="WS起始位置-读取当前位置" Content="读取当前位置" Click="{mwControls:Action btnSetWaferStartPosition}" HorizontalAlignment="Left" Grid.ColumnSpan="2" Margin="3,0,0,0" />
|
||||
<Button Grid.Column="2" Tag="WS起始位置-移到此位置" Content="移到此位置" Click="{mwControls:Action btnMoveWaferStartPosition}" HorizontalAlignment="Left" Margin="2,0,0,0" />
|
||||
<Button Grid.Column="3" Tag="WS起始位置-对齐中心" Content="对齐中心" Click="{mwControls:Action btnMoveToCenter}" HorizontalAlignment="Left" Margin="3,0,0,0" />
|
||||
</Grid>
|
||||
</UniformGrid>
|
||||
</GroupBox>
|
||||
<GroupBox Grid.Row="3" Style="{StaticResource GroupBoxSecondary}" Margin="3,3,3,3" Grid.ColumnSpan="2">
|
||||
<GroupBox.Header>
|
||||
<TextBlock Text="标定参数" VerticalAlignment="Center" FontWeight="Bold" />
|
||||
</GroupBox.Header>
|
||||
<Grid >
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Grid.Row="1" IsEnabled="{Binding Motion.IsFinish}" >
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="WaferStepXY(mm):" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding WsFusionCalibParItem.CalibStep}" Tag="WaferStepXY(mm)" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="0" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
<Label Content="WaferCountXY:" Grid.Column="2" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:IntNumberBox Value="{Binding WsFusionCalibParItem.CalibCount}" Tag="WaferCountXY" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="0" Maximum="1000" Grid.Column="3" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
</Grid>
|
||||
<Grid IsEnabled="{Binding Motion.IsFinish}" >
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="StepX1(mm):" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Tag="StepX(mm)" Value="{Binding WsFusionCalibParItem.Step}" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
<Label Content="CountX1:" Grid.Column="2" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:IntNumberBox Tag="CountX" Value="{Binding WsFusionCalibParItem.Count}" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="1" Maximum="10000" Grid.Column="3" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
</Grid>
|
||||
<Grid Grid.Row="3">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Content="开始" Tag="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Content}" Click="{mwControls:Action btnStart}" Grid.Column="2" IsEnabled="{Binding Motion.IsFinish}" />
|
||||
<Button Content="停止" Tag="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Content}" Click="{mwControls:Action btnStop}" Grid.Column="3" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// CameraFusionCalibView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class CameraFusionCalibView : UserControl
|
||||
{
|
||||
public CameraFusionCalibView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.CameraFusionPadCalibVerifyView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
xmlns:mwControls="http://www.maxwell-gp.com/"
|
||||
mc:Ignorable="d"
|
||||
xmlns:view="clr-namespace:MainShell.Common.Display.View"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<ContentControl Grid.Column="0" Content="{Binding CameraAxisViewModelSevice}"/>
|
||||
|
||||
<Grid Grid.Column="1">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<GroupBox Style="{StaticResource GroupBoxSecondary}" Margin="3,3,3,3" IsEnabled="{Binding Motion.IsFinish}" Grid.ColumnSpan="2">
|
||||
<GroupBox.Header>
|
||||
<TextBlock Text="PAD运动系标定位置" VerticalAlignment="Center" FontWeight="Bold" />
|
||||
</GroupBox.Header>
|
||||
<UniformGrid Grid.Row="0" Rows="2">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="140"/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="PAD平台标定Y1(mm):" Width="200" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Tag="WS平台标定Y1" Value="{Binding PadfusionCalibVerifyParItem.MoveAxisPos}" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="75" Height="35" />
|
||||
<Button Grid.Column="3" Tag="WS平台标定X1-移到此位置" Content="移到此位置" Click="{mwControls:Action btnMovePadCalibPosPosition}" HorizontalAlignment="Left" />
|
||||
</Grid>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1.6*"/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition Width="1.5*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="X1:" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding PadfusionCalibVerifyParItem.ApproachXPos}" IsReadOnly="True" Background="LightGray" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="75" Height="35" />
|
||||
<Label Content="Y2:" Grid.Column="2" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding PadfusionCalibVerifyParItem.ApproachYPos}" IsReadOnly="True" Background="LightGray" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="3" HorizontalAlignment="Left" Margin="5" Width="75" Height="35" />
|
||||
<!--<Button Grid.Column="5" Tag="WS平台标定X1-中心对齐" Content="中心对齐" Click="{mwControls:Action btnApproachWSCalibPosition}" HorizontalAlignment="Left" />-->
|
||||
</Grid>
|
||||
</UniformGrid>
|
||||
</GroupBox>
|
||||
<GroupBox Grid.Row="2" Style="{StaticResource GroupBoxSecondary}" Margin="3" IsEnabled="{Binding Motion.IsFinish}">
|
||||
<GroupBox.Header>
|
||||
<TextBlock Text="PAD运动位置" VerticalAlignment="Center" FontWeight="Bold" />
|
||||
</GroupBox.Header>
|
||||
<UniformGrid Rows="5" Columns="1">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="StartX(mm):" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding PadfusionCalibVerifyParItem.StartX}" IsReadOnly="True" Background="LightGray" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
<Label Content="StartY(mm):" Grid.Column="2" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding PadfusionCalibVerifyParItem.StartY}" IsReadOnly="True" Background="LightGray" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="3" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
</Grid>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Grid.Column="3" Content="设置起点" Click="{mwControls:Action btnMoveToCenter}" HorizontalAlignment="Left" />
|
||||
</Grid>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="Step(mm):" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding PadfusionCalibVerifyParItem.Step}" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
<Button Grid.Column="3" Content="移动到起点" Click="{mwControls:Action btnMoveToStartPoint}" HorizontalAlignment="Left" />
|
||||
</Grid>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="CountX:" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:IntNumberBox Value="{Binding PadfusionCalibVerifyParItem.CountX}" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
<Label Content="CountY:" Grid.Column="2" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:IntNumberBox Value="{Binding PadfusionCalibVerifyParItem.CountY}" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="3" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
</Grid>
|
||||
<Grid>
|
||||
<Button Content="开始飞拍" Click="{mwControls:Action btnMovePad}" Grid.Column="0" Margin="10 5" IsEnabled="{Binding Motion.IsFinish}" />
|
||||
</Grid>
|
||||
<Grid>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
<Button Content="以当前相机位置验证" Click="{mwControls:Action btnVerifyPad}" Margin="10 5" IsEnabled="{Binding Motion.IsFinish}" Width="150"/>
|
||||
<Button Content="停止" Tag="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Content}" Click="{mwControls:Action btnStopVerifyPad}" HorizontalAlignment="Right"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</UniformGrid>
|
||||
</GroupBox>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// CameraFusionPadCalibVerifyView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class CameraFusionPadCalibVerifyView : UserControl
|
||||
{
|
||||
public CameraFusionPadCalibVerifyView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,168 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.CameraFusionPadCalibView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
mc:Ignorable="d"
|
||||
xmlns:mwControls="http://www.maxwell-gp.com/"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<ContentControl Grid.Column="0" Content="{Binding CameraAxisViewModelSevice}"/>
|
||||
|
||||
<Grid Grid.Column="1">
|
||||
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<GroupBox Style="{StaticResource GroupBoxSecondary}" Margin="3,3,3,3" IsEnabled="{Binding Motion.IsFinish}" Grid.ColumnSpan="2">
|
||||
<GroupBox.Header>
|
||||
<TextBlock Text="PHS运动系标定位置" VerticalAlignment="Center" FontWeight="Bold" />
|
||||
</GroupBox.Header>
|
||||
<UniformGrid Grid.Row="0" Rows="2">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="140"/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="PHS平台标定Y1(mm):" Width="200" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Tag="PHS平台标定Y1" Value="{Binding FusionCalibParItem.MoveAxisPos}" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="75" Height="35" />
|
||||
<Button Grid.Column="3" Tag="PHS平台标定Y1-移到此位置" Content="移到此位置" Click="{mwControls:Action btnMovePhsCalibPosPosition}" HorizontalAlignment="Left" />
|
||||
</Grid>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1.6*"/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition Width="1.5*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="X1:" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding FusionCalibParItem.ApproachXPos}" IsReadOnly="True" Background="LightGray" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="75" Height="35" />
|
||||
<Label Content="Y2:" Grid.Column="2" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding FusionCalibParItem.ApproachYPos}" IsReadOnly="True" Background="LightGray" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="3" HorizontalAlignment="Left" Margin="5" Width="75" Height="35" />
|
||||
<Button Grid.Column="5" Tag="WS平台标定X1-中心对齐" Content="中心对齐" Click="{mwControls:Action btnApproachPhsCalibPosition}" HorizontalAlignment="Left" />
|
||||
</Grid>
|
||||
</UniformGrid>
|
||||
</GroupBox>
|
||||
<GroupBox Grid.Row="1" Style="{StaticResource GroupBoxSecondary}" Margin="3,3,3,3" IsEnabled="{Binding Motion.IsFinish}" Grid.ColumnSpan="2">
|
||||
<GroupBox.Header>
|
||||
<TextBlock Text="相机起始位置" VerticalAlignment="Center" FontWeight="Bold" />
|
||||
</GroupBox.Header>
|
||||
<UniformGrid Grid.Row="0" Rows="2">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="CameraX(mm):" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Center" />
|
||||
<mwControls:NumberBox Tag="CameraX" Value="{Binding FusionCalibParItem.CameraAxisPos}" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Center" Margin="5" Width="120" Height="35" />
|
||||
<Button Grid.Column="3" Tag="计算相机起始位置" Content="计算位置" Click="{mwControls:Action btnCalculateCameraPosition}" HorizontalAlignment="Left" />
|
||||
</Grid>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Grid.Column="1" Tag="相机起始位置-读取当前位置" Content="读取当前位置" Click="{mwControls:Action btnSetCameraPosition}" HorizontalAlignment="Left" />
|
||||
<Button Grid.Column="3" Tag="相机起始位置-移到此位置" Content="移到此位置" Click="{mwControls:Action btnMoveCameraPosition}" HorizontalAlignment="Left" />
|
||||
</Grid>
|
||||
</UniformGrid>
|
||||
</GroupBox>
|
||||
<GroupBox Grid.Row="2" Style="{StaticResource GroupBoxSecondary}" Margin="3,3,3,3" IsEnabled="{Binding Motion.IsFinish}" Grid.ColumnSpan="2">
|
||||
<GroupBox.Header>
|
||||
<TextBlock Text="PHS起始位置" VerticalAlignment="Center" FontWeight="Bold" />
|
||||
</GroupBox.Header>
|
||||
<UniformGrid Rows="2">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="StartX(mm):" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding FusionCalibParItem.StartX}" IsReadOnly="True" Background="LightGray" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
<Label Content="StartY(mm):" Grid.Column="2" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding FusionCalibParItem.StartY}" IsReadOnly="True" Background="LightGray" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="3" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
</Grid>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Grid.Column="0" Tag="WS起始位置-计算当前位置" Content="计算位置" Click="{mwControls:Action btnCalculatePhsPosition}" HorizontalAlignment="Left" Grid.ColumnSpan="2" Margin="3,0,0,0" />
|
||||
<Button Grid.Column="1" Tag="WS起始位置-读取当前位置" Content="读取当前位置" Click="{mwControls:Action btnSetStageStartPosition}" HorizontalAlignment="Left" Grid.ColumnSpan="2" Margin="3,0,0,0" />
|
||||
<Button Grid.Column="2" Tag="WS起始位置-移到此位置" Content="移到此位置" Click="{mwControls:Action btnMoveStageStartPosition}" HorizontalAlignment="Left" Margin="2,0,0,0" />
|
||||
<Button Grid.Column="3" Tag="WS起始位置-对齐中心" Content="对齐中心" Click="{mwControls:Action btnMoveToCenter}" HorizontalAlignment="Left" Margin="3,0,0,0" />
|
||||
</Grid>
|
||||
</UniformGrid>
|
||||
</GroupBox>
|
||||
<GroupBox Grid.Row="3" Style="{StaticResource GroupBoxSecondary}" Margin="3,3,3,3" Grid.ColumnSpan="2">
|
||||
<GroupBox.Header>
|
||||
<TextBlock Text="标定参数" VerticalAlignment="Center" FontWeight="Bold" />
|
||||
</GroupBox.Header>
|
||||
<Grid >
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Grid.Row="1" IsEnabled="{Binding Motion.IsFinish}" >
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="WaferStepXY(mm):" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Value="{Binding FusionCalibParItem.CalibStep}" Tag="WaferStepXY(mm)" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="0" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
<Label Content="WaferCountXY:" Grid.Column="2" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:IntNumberBox Value="{Binding FusionCalibParItem.CalibCount}" Tag="WaferCountXY" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="0" Maximum="1000" Grid.Column="3" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
</Grid>
|
||||
<Grid IsEnabled="{Binding Motion.IsFinish}" >
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Content="StepX1(mm):" Grid.Column="0" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:NumberBox Tag="StepX(mm)" Value="{Binding FusionCalibParItem.Step}" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="-1000" Maximum="1000" Grid.Column="1" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
<Label Content="CountX1:" Grid.Column="2" Style="{StaticResource CommonLableStyle}" HorizontalAlignment="Right" />
|
||||
<mwControls:IntNumberBox Tag="CountX" Value="{Binding FusionCalibParItem.Count}" mwControls:NumericKeypadAttach.IsEnabled="True" Minimum="1" Maximum="10000" Grid.Column="3" HorizontalAlignment="Left" Margin="5" Width="120" Height="35" />
|
||||
</Grid>
|
||||
<Grid Grid.Row="3">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Content="开始" Tag="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Content}" Click="{mwControls:Action btnStart}" Grid.Column="2" IsEnabled="{Binding Motion.IsFinish}" />
|
||||
<Button Content="停止" Tag="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Content}" Click="{mwControls:Action btnStop}" Grid.Column="3" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// CameraFusionPadCalibView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class CameraFusionPadCalibView : UserControl
|
||||
{
|
||||
public CameraFusionPadCalibView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.DistortionCorrectionCalibContentsView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
xmlns:mw="http://www.maxwell-gp.com/"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition/>
|
||||
<RowDefinition Height="50"/>
|
||||
</Grid.RowDefinitions>
|
||||
<!-- 顶部导航栏 -->
|
||||
<Border Grid.Row="0" Background="White" BorderBrush="#E0E4EA" BorderThickness="0,0,0,1" Padding="10,0">
|
||||
<Grid>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<TextBlock Text="当前标定:" VerticalAlignment="Center" FontSize="13" Foreground="#7A8FA6"/>
|
||||
<TextBlock Text="{Binding CurrentCalibName}" VerticalAlignment="Center"
|
||||
FontSize="13" FontWeight="SemiBold" Foreground="#2D3748" Margin="0,0,16,0"/>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<TextBlock Text="{Binding ProgressText}" VerticalAlignment="Center"
|
||||
FontSize="12" Foreground="#A0AEC0"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
<!-- 内容区 -->
|
||||
<ScrollViewer Grid.Row="1" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
|
||||
<ContentControl mw:View.Model="{Binding ShowScreenVM}"/>
|
||||
</ScrollViewer>
|
||||
<!-- 底部导航按钮 -->
|
||||
<Border Grid.Row="2" Background="White" BorderBrush="#E0E4EA" BorderThickness="0,1,0,0" Padding="8,0">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Button Content="上一个" Margin="5,0" Padding="16,0" Height="32"
|
||||
Command="{Binding PrevCommand}" IsEnabled="{Binding IsEnablePrev}"/>
|
||||
<Button Content="下一个" Margin="5,0" Padding="16,0" Height="32"
|
||||
Command="{Binding NextCommand}" IsEnabled="{Binding IsEnableNext}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// DistortionCorrectionCalibContentsView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class DistortionCorrectionCalibContentsView : UserControl
|
||||
{
|
||||
public DistortionCorrectionCalibContentsView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.DistortionCorrectionCalibView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
xmlns:mwFramework="clr-namespace:MwFramework.Controls.SystemCalib;assembly=MwFramework.Controls.SystemCalib"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
<mwFramework:DistortionCorrectionCalibControl DataContext="{Binding Service}"/>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// DistortionCorrectionCalibView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class DistortionCorrectionCalibView : UserControl
|
||||
{
|
||||
public DistortionCorrectionCalibView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,713 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.DieFusionCalibView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
xmlns:mw="http://www.maxwell-gp.com/"
|
||||
xmlns:customControl="clr-namespace:MainShell.Resources.CustomControl"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="800" d:DesignWidth="1200">
|
||||
<UserControl.Resources>
|
||||
<BooleanToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
|
||||
|
||||
<Style x:Key="VerifyButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="110"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="0,0,6,0"/>
|
||||
<Setter Property="Background" Value="#2B6CB0"/>
|
||||
<Setter Property="BorderBrush" Value="#2B6CB0"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#2C5282"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="#1A365D"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Background" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ModuleCardStyle" TargetType="Border">
|
||||
<Setter Property="Background" Value="White"/>
|
||||
<Setter Property="BorderBrush" Value="#E0E4EA"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="CornerRadius" Value="6"/>
|
||||
<Setter Property="Margin" Value="0,0,0,12"/>
|
||||
<Setter Property="Effect">
|
||||
<Setter.Value>
|
||||
<DropShadowEffect Color="#000000" Opacity="0.06" BlurRadius="8" ShadowDepth="2"
|
||||
Direction="270"/>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="SectionHeaderTextStyle" TargetType="TextBlock">
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ParamLabelStyle" TargetType="TextBlock">
|
||||
<Setter Property="Foreground" Value="#4A5568"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Right"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ParamNumberBoxStyle" TargetType="mw:NumberBox">
|
||||
<Setter Property="Width" Value="100"/>
|
||||
<Setter Property="Height" Value="28"/>
|
||||
<Setter Property="Margin" Value="6,2"/>
|
||||
<Setter Property="Minimum" Value="-99999"/>
|
||||
<Setter Property="Maximum" Value="99999"/>
|
||||
<Setter Property="DecimalPlaces" Value="3"/>
|
||||
<Setter Property="Foreground" Value="#1568D5"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ReadOnlyNumberBoxStyle" TargetType="mw:NumberBox" BasedOn="{StaticResource
|
||||
ParamNumberBoxStyle}">
|
||||
<Setter Property="IsReadOnly" Value="True"/>
|
||||
<Setter Property="Background" Value="#F0F4F8"/>
|
||||
<Setter Property="Foreground" Value="#4A5568"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="IntParamNumberBoxStyle" TargetType="mw:IntNumberBox">
|
||||
<Setter Property="Width" Value="100"/>
|
||||
<Setter Property="Height" Value="28"/>
|
||||
<Setter Property="Margin" Value="6,2"/>
|
||||
<Setter Property="mw:NumericKeypadAttach.IsEnabled" Value="True"/>
|
||||
<Setter Property="Minimum" Value="0"/>
|
||||
<Setter Property="Maximum" Value="1000"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="SmallActionButtonStyle" TargetType="Button">
|
||||
<Setter Property="Height" Value="28"/>
|
||||
<Setter Property="Padding" Value="10,0"/>
|
||||
<Setter Property="Margin" Value="4,2"/>
|
||||
<Setter Property="FontSize" Value="11"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Border x:Name="bd" Background="#EDF2F7" BorderBrush="#CBD5E0"
|
||||
BorderThickness="1" CornerRadius="4"
|
||||
Padding="{TemplateBinding Padding}">
|
||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="#E2E8F0"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="#CBD5E0"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter TargetName="bd" Property="Background" Value="#F7FAFC"/>
|
||||
<Setter TargetName="bd" Property="BorderBrush" Value="#E2E8F0"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="StartButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="110"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="0,0,6,0"/>
|
||||
<Setter Property="Background" Value="#1A202C"/>
|
||||
<Setter Property="BorderBrush" Value="#1A202C"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#2D3748"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="#0F141B"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Background" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="StopButtonStyle" TargetType="Button" BasedOn="{StaticResource
|
||||
BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="110"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="0,0,6,0"/>
|
||||
<Setter Property="Background" Value="#E53E3E"/>
|
||||
<Setter Property="BorderBrush" Value="#E53E3E"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#C53030"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="#9B2C2C"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</UserControl.Resources>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- ==================== 左侧:相机预览 ==================== -->
|
||||
<Border Grid.Column="0" Margin="0,0,4,0">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="32"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0" Padding="10,0">
|
||||
<Grid>
|
||||
<TextBlock Text="相机预览"
|
||||
Foreground="#7A8FA6"
|
||||
FontSize="11"
|
||||
FontWeight="SemiBold"
|
||||
VerticalAlignment="Center"/>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right"
|
||||
VerticalAlignment="Center">
|
||||
<Ellipse Width="7" Height="7" Fill="#28A745" Margin="0,0,4,0"/>
|
||||
<TextBlock Text="LIVE" Foreground="#28A745" FontSize="10" FontWeight="Bold"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<ContentControl Grid.Row="1" Content="{Binding CameraAxisViewModelSevice}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ==================== 右侧:Tab切换 ==================== -->
|
||||
<Grid Grid.Column="1">
|
||||
<TabControl>
|
||||
<!-- ====== Tab 1:标定 ====== -->
|
||||
<TabItem Header="标定">
|
||||
<ScrollViewer VerticalScrollBarVisibility="Auto"
|
||||
HorizontalScrollBarVisibility="Disabled"
|
||||
CanContentScroll="False"
|
||||
PanningMode="VerticalOnly"
|
||||
Padding="8,8,8,0">
|
||||
<StackPanel>
|
||||
|
||||
<!-- ====== 卡片 1:WS运动系标定位置 ====== -->
|
||||
<Border Style="{StaticResource ModuleCardStyle}" IsEnabled="{Binding Motion.IsFinish}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0"
|
||||
Background="#F7F9FC"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
CornerRadius="6,6,0,0"
|
||||
Padding="10,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#E8821A" VerticalAlignment="Center"
|
||||
Margin="0,0,5,0"/>
|
||||
<TextBlock Text="WS运动系标定位置"
|
||||
Foreground="#E8821A"
|
||||
Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="1" Padding="10,8">
|
||||
<StackPanel>
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="90"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="WS平台标定X1(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding WsFusionCalibParItem.MoveAxisPos, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="80"/>
|
||||
<Button Grid.Column="2"
|
||||
Content="移到此位置"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnMoveWSCalibPosPosition}"/>
|
||||
</Grid>
|
||||
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="90"/>
|
||||
<ColumnDefinition Width="40"/>
|
||||
<ColumnDefinition Width="90"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="X2:"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding WsFusionCalibParItem.ApproachXPos}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="80"/>
|
||||
<TextBlock Grid.Column="2"
|
||||
Text="Y1:"
|
||||
Style="{StaticResource ParamLabelStyle}"/>
|
||||
<mw:NumberBox Grid.Column="3"
|
||||
Value="{Binding WsFusionCalibParItem.ApproachYPos}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="80"/>
|
||||
<Button Grid.Column="4"
|
||||
Content="中心对齐"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnApproachWSCalibPosition}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ====== 卡片 2:相机起始位置 ====== -->
|
||||
<Border Style="{StaticResource ModuleCardStyle}" IsEnabled="{Binding Motion.IsFinish}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0"
|
||||
Background="#F7F9FC"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
CornerRadius="6,6,0,0"
|
||||
Padding="10,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#2D3748" VerticalAlignment="Center"
|
||||
Margin="0,0,5,0"/>
|
||||
<TextBlock Text="相机起始位置"
|
||||
Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="1" Padding="10,8">
|
||||
<StackPanel>
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="CameraX(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding WsFusionCalibParItem.CameraAxisPos, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="100"/>
|
||||
<Button Grid.Column="2"
|
||||
Content="计算位置"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnCalculateCameraPosition}"/>
|
||||
<Button Grid.Column="3"
|
||||
Content="读取当前位置"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnSetCameraPosition}"/>
|
||||
<Button Grid.Column="4"
|
||||
Content="移到此位置"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnMoveCameraPosition}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ====== 卡片 3:WS起始位置 ====== -->
|
||||
<Border Style="{StaticResource ModuleCardStyle}" IsEnabled="{Binding Motion.IsFinish}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0"
|
||||
Background="#F7F9FC"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
CornerRadius="6,6,0,0"
|
||||
Padding="10,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#2D3748" VerticalAlignment="Center"
|
||||
Margin="0,0,5,0"/>
|
||||
<TextBlock Text="WS起始位置"
|
||||
Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="1" Padding="10,8">
|
||||
<StackPanel>
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="StartX(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding WsFusionCalibParItem.StartX}"
|
||||
Style="{StaticResource ReadOnlyNumberBoxStyle}"
|
||||
Width="100"/>
|
||||
<TextBlock Grid.Column="2"
|
||||
Text="StartY(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"/>
|
||||
<mw:NumberBox Grid.Column="3"
|
||||
Value="{Binding WsFusionCalibParItem.StartY}"
|
||||
Style="{StaticResource ReadOnlyNumberBoxStyle}"
|
||||
Width="100"/>
|
||||
</Grid>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="0,4,0,0">
|
||||
<Button Content="计算位置"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnCalculateWSPosition}"/>
|
||||
<Button Content="读取当前位置"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnSetWaferStartPosition}"/>
|
||||
<Button Content="移到此位置"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnMoveWaferStartPosition}"/>
|
||||
<Button Content="对齐中心"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnMoveToCenter}"/>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ====== 卡片 4:标定参数 ====== -->
|
||||
<Border Style="{StaticResource ModuleCardStyle}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0"
|
||||
Background="#F7F9FC"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
CornerRadius="6,6,0,0"
|
||||
Padding="10,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#2D3748" VerticalAlignment="Center"
|
||||
Margin="0,0,5,0"/>
|
||||
<TextBlock Text="标定参数"
|
||||
Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="1" Padding="10,8" IsEnabled="{Binding Motion.IsFinish}">
|
||||
<StackPanel>
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="WaferStepXY(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding WsFusionCalibParItem.CalibStep, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="100"/>
|
||||
<TextBlock Grid.Column="2"
|
||||
Text="WaferCountXY:"
|
||||
Style="{StaticResource ParamLabelStyle}"/>
|
||||
<mw:IntNumberBox Grid.Column="3"
|
||||
Value="{Binding WsFusionCalibParItem.CalibCount, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="100"/>
|
||||
</Grid>
|
||||
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="StepX1(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding WsFusionCalibParItem.Step, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="100"/>
|
||||
<TextBlock Grid.Column="2"
|
||||
Text="CountX1:"
|
||||
Style="{StaticResource ParamLabelStyle}"/>
|
||||
<mw:IntNumberBox Grid.Column="3"
|
||||
Value="{Binding WsFusionCalibParItem.Count, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Minimum="1"
|
||||
Maximum="10000"
|
||||
Width="100"/>
|
||||
</Grid>
|
||||
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right"
|
||||
Margin="0,8,0,0">
|
||||
<Button Content="开始"
|
||||
Click="{mw:Action btnStart}"
|
||||
Style="{StaticResource StartButtonStyle}"
|
||||
IsEnabled="{Binding Motion.IsFinish}"/>
|
||||
<Button Content="停止"
|
||||
Click="{mw:Action btnStop}"
|
||||
Style="{StaticResource StopButtonStyle}"/>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
</TabItem>
|
||||
|
||||
<!-- ====== Tab 2:验证 ====== -->
|
||||
<TabItem Header="验证">
|
||||
<ScrollViewer VerticalScrollBarVisibility="Auto"
|
||||
HorizontalScrollBarVisibility="Disabled"
|
||||
CanContentScroll="False"
|
||||
PanningMode="VerticalOnly"
|
||||
Padding="8,8,8,0">
|
||||
<StackPanel>
|
||||
|
||||
<!-- ====== 卡片 1:WS运动系标定位置 ====== -->
|
||||
<Border Style="{StaticResource ModuleCardStyle}" IsEnabled="{Binding Motion.IsFinish}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0"
|
||||
Background="#F7F9FC"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
CornerRadius="6,6,0,0"
|
||||
Padding="10,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#E8821A" VerticalAlignment="Center"
|
||||
Margin="0,0,5,0"/>
|
||||
<TextBlock Text="WS运动系验证位置"
|
||||
Foreground="#E8821A"
|
||||
Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="1" Padding="10,8">
|
||||
<StackPanel>
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="180"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="WS平台标定X1(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding WsFusionCalibParItem.MoveAxisPos, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="80"/>
|
||||
<Button Grid.Column="2"
|
||||
Content="移到此位置"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnMoveWSCalibPosPosition}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ====== 卡片 2:WS运动位置(验证) ====== -->
|
||||
<Border Style="{StaticResource ModuleCardStyle}" IsEnabled="{Binding Motion.IsFinish}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0"
|
||||
Background="#F7F9FC"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
CornerRadius="6,6,0,0"
|
||||
Padding="10,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#2D3748" VerticalAlignment="Center"
|
||||
Margin="0,0,5,0"/>
|
||||
<TextBlock Text="WS运动位置"
|
||||
Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="1" Padding="10,8">
|
||||
<StackPanel>
|
||||
<!-- 起点坐标 -->
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="StartX(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding WsFusionCalibParItem.WaferStartVerifyX}"
|
||||
Style="{StaticResource ReadOnlyNumberBoxStyle}"
|
||||
Width="100"/>
|
||||
<TextBlock Grid.Column="2"
|
||||
Text="StartY(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"/>
|
||||
<mw:NumberBox Grid.Column="3"
|
||||
Value="{Binding WsFusionCalibParItem.WaferStartVerifyY}"
|
||||
Style="{StaticResource ReadOnlyNumberBoxStyle}"
|
||||
Width="100"/>
|
||||
</Grid>
|
||||
|
||||
<!-- 设置起点 -->
|
||||
<StackPanel Orientation="Horizontal" Margin="0,4,0,0">
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Button Grid.Column="1" Content="设置起点"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnMoveToCenter}"/>
|
||||
<Button Grid.Column="3"
|
||||
Content="移动到起点"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnMoveToStartPoint}"/>
|
||||
|
||||
</Grid>
|
||||
|
||||
</StackPanel>
|
||||
|
||||
<!-- Step + 移动到起点 -->
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="Step(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding WsFusionCalibParItem.WaferVerityStep}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="100"/>
|
||||
|
||||
</Grid>
|
||||
|
||||
<!-- Count X / Y -->
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="CountX:"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:IntNumberBox Grid.Column="1"
|
||||
Value="{Binding WsFusionCalibParItem.WaferVerityCountX}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="100"/>
|
||||
<TextBlock Grid.Column="2"
|
||||
Text="CountY:"
|
||||
Style="{StaticResource ParamLabelStyle}"/>
|
||||
<mw:IntNumberBox Grid.Column="3"
|
||||
Value="{Binding WsFusionCalibParItem.WaferVerityCountY}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="100"/>
|
||||
</Grid>
|
||||
|
||||
<!-- 飞拍 + 验证按钮 -->
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right"
|
||||
Margin="0,8,0,0">
|
||||
<Button Content="开始飞拍"
|
||||
Click="{mw:Action btnMoveWafer}"
|
||||
Style="{StaticResource StartButtonStyle}"
|
||||
IsEnabled="{Binding Motion.IsFinish}"/>
|
||||
<Button Content="以当前相机位置验证"
|
||||
Click="{mw:Action btnVerityWafer}"
|
||||
Style="{StaticResource VerifyButtonStyle}"
|
||||
Width="150"
|
||||
IsEnabled="{Binding Motion.IsFinish}"/>
|
||||
<Button Content="停止"
|
||||
Click="{mw:Action btnStopVerityWafer}"
|
||||
Style="{StaticResource StopButtonStyle}"/>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
</TabItem>
|
||||
</TabControl>
|
||||
</Grid>
|
||||
|
||||
<customControl:LoadingWaitView Grid.ColumnSpan="2" Panel.ZIndex="1000"/>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// DieFusionCalibView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class DieFusionCalibView : UserControl
|
||||
{
|
||||
public DieFusionCalibView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,369 @@
|
||||
<UserControl x:Class="MainShell.PageCalib.AlgorithmCalib.View.FusionCalib.FusionAlignVerifyView"
|
||||
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:MainShell.PageCalib.AlgorithmCalib.View.FusionCalib"
|
||||
xmlns:mw="http://www.maxwell-gp.com/"
|
||||
xmlns:customControl="clr-namespace:MainShell.Resources.CustomControl"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="800" d:DesignWidth="1200">
|
||||
<UserControl.Resources>
|
||||
<!-- 复用标定页面的样式 -->
|
||||
<BooleanToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
|
||||
<Style x:Key="StartButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="110"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="0,0,6,0"/>
|
||||
<Setter Property="Background" Value="#1A202C"/>
|
||||
<Setter Property="BorderBrush" Value="#1A202C"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#2D3748"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="#0F141B"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Background" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="VerifyButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="110"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="0,0,6,0"/>
|
||||
<Setter Property="Background" Value="#2B6CB0"/>
|
||||
<Setter Property="BorderBrush" Value="#2B6CB0"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#2C5282"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="#1A365D"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Background" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="StopButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="110"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="0,0,6,0"/>
|
||||
<Setter Property="Background" Value="#E53E3E"/>
|
||||
<Setter Property="BorderBrush" Value="#E53E3E"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#C53030"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="#9B2C2C"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ModuleCardStyle" TargetType="Border">
|
||||
<Setter Property="Background" Value="White"/>
|
||||
<Setter Property="BorderBrush" Value="#E0E4EA"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="CornerRadius" Value="6"/>
|
||||
<Setter Property="Margin" Value="0,0,0,12"/>
|
||||
<Setter Property="Effect">
|
||||
<Setter.Value>
|
||||
<DropShadowEffect Color="#000000" Opacity="0.06" BlurRadius="8" ShadowDepth="2" Direction="270"/>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="SectionHeaderTextStyle" TargetType="TextBlock">
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ParamLabelStyle" TargetType="TextBlock">
|
||||
<Setter Property="Foreground" Value="#4A5568"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Right"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ReadOnlyNumberBoxStyle" TargetType="mw:NumberBox">
|
||||
<Setter Property="Width" Value="100"/>
|
||||
<Setter Property="Height" Value="28"/>
|
||||
<Setter Property="Margin" Value="6,2"/>
|
||||
<Setter Property="IsReadOnly" Value="True"/>
|
||||
<Setter Property="Background" Value="#F0F4F8"/>
|
||||
<Setter Property="Foreground" Value="#4A5568"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="SmallActionButtonStyle" TargetType="Button">
|
||||
<Setter Property="Height" Value="28"/>
|
||||
<Setter Property="Padding" Value="10,0"/>
|
||||
<Setter Property="Margin" Value="4,2"/>
|
||||
<Setter Property="FontSize" Value="11"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Border x:Name="bd" Background="#EDF2F7" BorderBrush="#CBD5E0"
|
||||
BorderThickness="1" CornerRadius="4"
|
||||
Padding="{TemplateBinding Padding}">
|
||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="#E2E8F0"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="#CBD5E0"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter TargetName="bd" Property="Background" Value="#F7FAFC"/>
|
||||
<Setter TargetName="bd" Property="BorderBrush" Value="#E2E8F0"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="StepButtonStyle" TargetType="Button">
|
||||
<Setter Property="Width" Value="120"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="0,0,8,0"/>
|
||||
<Setter Property="Background" Value="#2B6CB0"/>
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
<Setter Property="BorderBrush" Value="#2B6CB0"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#2C5282"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="#1A365D"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Background" Value="#A0AEC0"/>
|
||||
<Setter Property="BorderBrush" Value="#A0AEC0"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</UserControl.Resources>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- ==================== 左侧:相机预览 ==================== -->
|
||||
<Border Grid.Column="0" Margin="0,0,4,0">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="32"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Grid.Row="0" Padding="10,0">
|
||||
<Grid>
|
||||
<TextBlock Text="相机预览" Foreground="#7A8FA6" FontSize="11"
|
||||
FontWeight="SemiBold" VerticalAlignment="Center"/>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Ellipse Width="7" Height="7" Fill="#28A745" Margin="0,0,4,0"/>
|
||||
<TextBlock Text="LIVE" Foreground="#28A745" FontSize="10" FontWeight="Bold"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
<ContentControl Grid.Row="1" Content="{Binding CameraAxisViewModelSevice}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ==================== 右侧:对位流程(3步) ==================== -->
|
||||
<Grid Grid.Column="1">
|
||||
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled"
|
||||
CanContentScroll="False" PanningMode="VerticalOnly" Padding="8,8,8,0">
|
||||
<StackPanel>
|
||||
|
||||
<!-- ====== 步骤1:抓Pad点 ====== -->
|
||||
<Border Style="{StaticResource ModuleCardStyle}" IsEnabled="{Binding Motion.IsFinish}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Grid.Row="0" Background="#F7F9FC" BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1" CornerRadius="6,6,0,0" Padding="10,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#2B6CB0" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
||||
<TextBlock Text="第一步:抓Pad点(目标Pad)" Foreground="#2B6CB0" Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<Border Grid.Row="1" Padding="10,8">
|
||||
<StackPanel>
|
||||
<TextBlock Text="框选ROI区域,识别Pad目标点坐标" Foreground="#718096" FontSize="11" Margin="6,0,0,8"/>
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="Pad X1(mm):" Style="{StaticResource ParamLabelStyle}" Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1" Value="{Binding PadCapturedX}" Style="{StaticResource ReadOnlyNumberBoxStyle}"/>
|
||||
<TextBlock Grid.Column="2" Text="Pad Y2(mm):" Style="{StaticResource ParamLabelStyle}" Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="3" Value="{Binding PadCapturedY}" Style="{StaticResource ReadOnlyNumberBoxStyle}"/>
|
||||
<Button Grid.Column="4" Content="抓Pad点" Style="{StaticResource VerifyButtonStyle}" Click="{mw:Action btnCapturePad}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ====== 步骤2:Die网格飞拍 ====== -->
|
||||
<Border Style="{StaticResource ModuleCardStyle}" IsEnabled="{Binding Motion.IsFinish}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Grid.Row="0" Background="#F7F9FC" BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1" CornerRadius="6,6,0,0" Padding="10,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#2B6CB0" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
||||
<TextBlock Text="第二步:Die网格飞拍" Foreground="#2B6CB0" Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<Border Grid.Row="1" Padding="10,8">
|
||||
<StackPanel>
|
||||
<TextBlock Text="框选ROI抓Die首点,设置飞拍参数后执行网格扫描" Foreground="#718096" FontSize="11" Margin="6,0,0,8"/>
|
||||
<!-- 首点坐标 + 抓Die首点按钮 -->
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="首点 X2(mm):" Style="{StaticResource ParamLabelStyle}" Margin="6,0"/>
|
||||
<mw:NumberBox Width="80" Grid.Column="1" Value="{Binding DieFirstX}" Style="{StaticResource ReadOnlyNumberBoxStyle}"/>
|
||||
<TextBlock Grid.Column="2" Text="首点 Y1(mm):" Style="{StaticResource ParamLabelStyle}" Margin="6,0"/>
|
||||
<mw:NumberBox Width="80" Grid.Column="3" Value="{Binding DieFirstY}" Style="{StaticResource ReadOnlyNumberBoxStyle}"/>
|
||||
<Button Grid.Column="4" Content="抓Die首点" Style="{StaticResource VerifyButtonStyle}" Click="{mw:Action btnCaptureDieFirst}"/>
|
||||
</Grid>
|
||||
<!-- 飞拍参数 -->
|
||||
<Grid Margin="0,6,0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Grid.Row="0" Grid.Column="0" Text="X Count:" Style="{StaticResource ParamLabelStyle}" Margin="6,0"/>
|
||||
<mw:IntNumberBox Grid.Row="0" Grid.Column="1" Value="{Binding FlyScanXCount}" Width="80" Height="28" Margin="6,2"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="2" Text="Y Count:" Style="{StaticResource ParamLabelStyle}" Margin="6,0"/>
|
||||
<mw:IntNumberBox Grid.Row="0" Grid.Column="3" Value="{Binding FlyScanYCount}" Width="80" Height="28" Margin="6,2"/>
|
||||
<TextBlock Grid.Row="1" Grid.Column="0" Text="Step(mm):" Style="{StaticResource ParamLabelStyle}" Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Row="1" Grid.Column="1" Value="{Binding FlyScanStep}" Width="80" Height="28" Margin="6,2"/>
|
||||
</Grid>
|
||||
<!-- 飞拍按钮 -->
|
||||
<StackPanel Orientation="Horizontal" Margin="0,6,0,0">
|
||||
<Button Content="开始飞拍" Style="{StaticResource VerifyButtonStyle}" Click="{mw:Action btnStartFlyScan}"/>
|
||||
<Button Content="停止" Style="{StaticResource StopButtonStyle}" Click="{mw:Action btnStopAlign}" Width="80"/>
|
||||
</StackPanel>
|
||||
<!-- 飞拍结果 -->
|
||||
<TextBlock Text="{Binding FlyScanResultText}" Foreground="#2D3748" FontSize="12" Margin="6,8,0,4"/>
|
||||
<DataGrid ItemsSource="{Binding DisplayDieGridPoints}"
|
||||
AutoGenerateColumns="False"
|
||||
IsReadOnly="True"
|
||||
CanUserAddRows="False"
|
||||
CanUserDeleteRows="False"
|
||||
Height="120"
|
||||
Margin="0,2"
|
||||
FontSize="11"
|
||||
VerticalScrollBarVisibility="Auto">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="行" Binding="{Binding Row}" Width="50"/>
|
||||
<DataGridTextColumn Header="列" Binding="{Binding Col}" Width="50"/>
|
||||
<DataGridTextColumn Header="X2(mm)" Binding="{Binding X, StringFormat=F4}" Width="100"/>
|
||||
<DataGridTextColumn Header="Y1(mm)" Binding="{Binding Y, StringFormat=F4}" Width="100"/>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ====== 步骤3:对位验证 ====== -->
|
||||
<Border Style="{StaticResource ModuleCardStyle}" IsEnabled="{Binding Motion.IsFinish}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Grid.Row="0" Background="#F7F9FC" BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1" CornerRadius="6,6,0,0" Padding="10,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#38A169" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
||||
<TextBlock Text="第三步:对位验证" Foreground="#38A169" Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<Border Grid.Row="1" Padding="10,8">
|
||||
<StackPanel>
|
||||
<TextBlock Text="选择Die网格中的一点,与Pad点执行对位" Foreground="#718096" FontSize="11" Margin="6,0,0,8"/>
|
||||
<!-- 行列选择 -->
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="选择行(Row):" Style="{StaticResource ParamLabelStyle}" Margin="6,0"/>
|
||||
<mw:IntNumberBox Grid.Column="1" Value="{Binding SelectedRow}" Width="80" Height="28" Margin="6,2"/>
|
||||
<TextBlock Grid.Column="2" Text="选择列(Col):" Style="{StaticResource ParamLabelStyle}" Margin="6,0"/>
|
||||
<mw:IntNumberBox Grid.Column="3" Value="{Binding SelectedCol}" Width="80" Height="28" Margin="6,2"/>
|
||||
<Button Grid.Column="4" Content="执行对位" Style="{StaticResource VerifyButtonStyle}" Click="{mw:Action btnExecuteAlign}"/>
|
||||
</Grid>
|
||||
<!-- 对位结果 -->
|
||||
<Border Background="#F7FAFC" BorderBrush="#E2E8F0" BorderThickness="1" CornerRadius="4" Margin="0,8,0,4" Padding="8,6">
|
||||
<StackPanel>
|
||||
<TextBlock Text="对位结果" Foreground="#4A5568" FontSize="11" FontWeight="SemiBold" Margin="0,0,0,4"/>
|
||||
<TextBlock Text="{Binding AlignResultText}" Foreground="#2D3748" FontSize="12" TextWrapping="Wrap"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ====== 进度 ====== -->
|
||||
<Border Style="{StaticResource ModuleCardStyle}" Visibility="{Binding IsRunning, Converter={StaticResource BoolToVisibilityConverter}}">
|
||||
<StackPanel Margin="10,8">
|
||||
<TextBlock Text="{Binding ProgressMessage}" Foreground="#4A5568" FontSize="12"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
|
||||
<customControl:LoadingWaitView Grid.ColumnSpan="2" Panel.ZIndex="1000"/>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.PageCalib.AlgorithmCalib.View.FusionCalib
|
||||
{
|
||||
/// <summary>
|
||||
/// FusionAlignVerifyView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class FusionAlignVerifyView : UserControl
|
||||
{
|
||||
public FusionAlignVerifyView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.FusionCalibContentsView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
xmlns:mw="http://www.maxwell-gp.com/"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition/>
|
||||
<RowDefinition Height="50"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Grid.Row="0" Background="White" BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1" Padding="10,0">
|
||||
<Grid>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<TextBlock Text="当前标定:" VerticalAlignment="Center" FontSize="13" Foreground="#7A8FA6"/>
|
||||
<TextBlock Text="{Binding CurrentCalibName}" VerticalAlignment="Center"
|
||||
FontSize="13" FontWeight="SemiBold" Foreground="#2D3748" Margin="0,0,16,0"/>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<TextBlock Text="{Binding ProgressText}" VerticalAlignment="Center"
|
||||
FontSize="12" Foreground="#A0AEC0"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
<ScrollViewer Grid.Row="1" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
|
||||
<ContentControl mw:View.Model="{Binding ShowScreenVM}"/>
|
||||
</ScrollViewer>
|
||||
<Border Grid.Row="2" Background="White" BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,1,0,0" Padding="8,0">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Button Content="上一个" Margin="5,0" Padding="16,0" Height="32"
|
||||
Command="{Binding PrevCommand}" IsEnabled="{Binding IsEnablePrev}"/>
|
||||
<Button Content="下一个" Margin="5,0" Padding="16,0" Height="32"
|
||||
Command="{Binding NextCommand}" IsEnabled="{Binding IsEnableNext}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// FusionCalibContentsView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class FusionCalibContentsView : UserControl
|
||||
{
|
||||
public FusionCalibContentsView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,358 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.FusionMultipleCalibView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
xmlns:mw="http://www.maxwell-gp.com/"
|
||||
xmlns:customControl="clr-namespace:MainShell.Resources.CustomControl"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="800" d:DesignWidth="1200">
|
||||
<UserControl.Resources>
|
||||
<BooleanToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
|
||||
|
||||
<Style x:Key="ModuleCardStyle" TargetType="Border">
|
||||
<Setter Property="Background" Value="White"/>
|
||||
<Setter Property="BorderBrush" Value="#E0E4EA"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="CornerRadius" Value="6"/>
|
||||
<Setter Property="Margin" Value="0,0,0,12"/>
|
||||
<Setter Property="Effect">
|
||||
<Setter.Value>
|
||||
<DropShadowEffect Color="#000000" Opacity="0.06" BlurRadius="8" ShadowDepth="2" Direction="270"/>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="SectionHeaderTextStyle" TargetType="TextBlock">
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="BadgeStyle" TargetType="Border">
|
||||
<Setter Property="CornerRadius" Value="3"/>
|
||||
<Setter Property="Padding" Value="5,1"/>
|
||||
<Setter Property="Margin" Value="3,0"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="SmallActionButtonStyle" TargetType="Button">
|
||||
<Setter Property="Height" Value="28"/>
|
||||
<Setter Property="Padding" Value="10,0"/>
|
||||
<Setter Property="Margin" Value="4,2"/>
|
||||
<Setter Property="FontSize" Value="11"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Border x:Name="bd" Background="#EDF2F7" BorderBrush="#CBD5E0"
|
||||
BorderThickness="1" CornerRadius="4"
|
||||
Padding="{TemplateBinding Padding}">
|
||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="#E2E8F0"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="#CBD5E0"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter TargetName="bd" Property="Background" Value="#F7FAFC"/>
|
||||
<Setter TargetName="bd" Property="BorderBrush" Value="#E2E8F0"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="StartCalibButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="120"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="0,0,10,0"/>
|
||||
<Setter Property="Background" Value="#1A202C"/>
|
||||
<Setter Property="BorderBrush" Value="#1A202C"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#2D3748"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="#0F141B"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Background" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ModuleWriteButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="110"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="4,0"/>
|
||||
<Setter Property="Background" Value="{StaticResource TeachOrange}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource TeachOrange}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{StaticResource TeachOrangeHover}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource TeachOrangeHover}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="{StaticResource TeachOrangePressed}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource TeachOrangePressed}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Background" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</UserControl.Resources>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- 左侧:相机预览 -->
|
||||
<Border Grid.Column="0" Margin="0,0,4,0">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="32"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Grid.Row="0" Padding="10,0">
|
||||
<Grid>
|
||||
<TextBlock Text="相机预览" Foreground="#7A8FA6" FontSize="11"
|
||||
FontWeight="SemiBold" VerticalAlignment="Center"/>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Ellipse Width="7" Height="7" Fill="#28A745" Margin="0,0,4,0"/>
|
||||
<TextBlock Text="LIVE" Foreground="#28A745" FontSize="10" FontWeight="Bold"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
<ContentControl Grid.Row="1" Content="{Binding CameraAxisViewModelService}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- 右侧:工具栏 + 标定卡片 -->
|
||||
<Grid Grid.Column="1">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="50"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- 顶部工具栏 -->
|
||||
<Border Grid.Row="0" Background="White" BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1" Padding="8,0">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Button Content="读取标定数据" Command="{mw:Action btnReadCalibData}"
|
||||
Style="{StaticResource SmallActionButtonStyle}" Width="110" Height="34" Margin="5,0"/>
|
||||
<Button Content="保存标定数据" Command="{mw:Action btnSaveCalibData}"
|
||||
Style="{StaticResource SmallActionButtonStyle}" Width="110" Height="34" Margin="5,0"/>
|
||||
<Button Content="应用标定数据" Command="{mw:Action btnApplyCalibData}"
|
||||
Style="{StaticResource ModuleWriteButtonStyle}" Width="110" Height="34" Margin="5,0"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- 标定卡片 -->
|
||||
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto"
|
||||
HorizontalScrollBarVisibility="Disabled" CanContentScroll="False"
|
||||
PanningMode="VerticalOnly" Padding="8,8,8,0">
|
||||
<Border Style="{StaticResource ModuleCardStyle}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Header -->
|
||||
<Border Grid.Row="0" Background="#F7F9FC" BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1" CornerRadius="6,6,0,0" Padding="10,0">
|
||||
<Grid>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<TextBlock Text="[] " Foreground="#8892A0" FontSize="14" VerticalAlignment="Center"/>
|
||||
<TextBlock FontWeight="SemiBold" FontSize="13" Foreground="#2D3748" VerticalAlignment="Center">
|
||||
<Run Text="融合标定数据"/>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Border Style="{StaticResource BadgeStyle}" Background="#EDF2F7">
|
||||
<TextBlock Text="4区域融合" FontSize="10" Foreground="#718096"/>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- Section 1: 标定参数表格 -->
|
||||
<Border Grid.Row="1" BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1" Padding="10,8">
|
||||
<StackPanel>
|
||||
<Grid Margin="0,0,0,6">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#2D3748" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
||||
<TextBlock Text="标定区域参数" Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<DataGrid ItemsSource="{Binding FusionCalibParItem}"
|
||||
SelectedItem="{Binding SelectedCalibPar}"
|
||||
Margin="0,4" Height="200"
|
||||
AutoGenerateColumns="false" SelectionMode="Single"
|
||||
CanUserSortColumns="False" HeadersVisibility="Column"
|
||||
GridLinesVisibility="Horizontal"
|
||||
HorizontalGridLinesBrush="#F0F4F8"
|
||||
BorderBrush="#E0E4EA" BorderThickness="1"
|
||||
RowBackground="White" AlternatingRowBackground="#FAFBFC"
|
||||
RowHeight="28">
|
||||
<DataGrid.ColumnHeaderStyle>
|
||||
<Style TargetType="DataGridColumnHeader">
|
||||
<Setter Property="Background" Value="#F7F9FC"/>
|
||||
<Setter Property="Foreground" Value="#8892A0"/>
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
<Setter Property="FontSize" Value="11"/>
|
||||
<Setter Property="Padding" Value="8,4"/>
|
||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||
<Setter Property="BorderBrush" Value="#E0E4EA"/>
|
||||
<Setter Property="BorderThickness" Value="0,0,0,1"/>
|
||||
</Style>
|
||||
</DataGrid.ColumnHeaderStyle>
|
||||
<DataGrid.CellStyle>
|
||||
<Style TargetType="DataGridCell">
|
||||
<Setter Property="Padding" Value="8,2"/>
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsSelected" Value="True">
|
||||
<Setter Property="Background" Value="#EBF5FF"/>
|
||||
<Setter Property="Foreground" Value="#1568D5"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</DataGrid.CellStyle>
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="序号" IsReadOnly="True" Binding="{Binding Index}" Width="50"/>
|
||||
<DataGridTemplateColumn Width="*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="Y1(mm)"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{StaticResource PrimaryTextBrush}"
|
||||
Text="{Binding MoveAxisPos, StringFormat=F4}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTemplateColumn Width="*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="X1(mm)"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{StaticResource PrimaryTextBrush}"
|
||||
Text="{Binding ApproachXPos, StringFormat=F4}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTemplateColumn Width="*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="Y2(mm)"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{StaticResource PrimaryTextBrush}"
|
||||
Text="{Binding ApproachYPos, StringFormat=F4}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTemplateColumn Width="*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="StartX(mm)"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{StaticResource PrimaryTextBrush}"
|
||||
Text="{Binding StartX, StringFormat=F4}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTemplateColumn Width="*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="StartY(mm)"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{StaticResource PrimaryTextBrush}"
|
||||
Text="{Binding StartY, StringFormat=F4}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTemplateColumn Width="*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="步长(mm)"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{StaticResource PrimaryTextBrush}"
|
||||
Text="{Binding Step, StringFormat=F4}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTemplateColumn Width="*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="行列数"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{StaticResource PrimaryTextBrush}"
|
||||
Text="{Binding Count}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Section 2: 操作按钮 -->
|
||||
<Border Grid.Row="2" BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1" Padding="10,8">
|
||||
<StackPanel>
|
||||
<Grid Margin="0,0,0,6">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#2B6CB0" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
||||
<TextBlock Text="标定操作" Foreground="#2B6CB0" Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<StackPanel Orientation="Horizontal" Margin="0,4">
|
||||
<Button Content="打开标定窗口" Command="{mw:Action btnOpenCalibWindow}"
|
||||
Style="{StaticResource StartCalibButtonStyle}" Width="120"/>
|
||||
<TextBlock Text="选择一行数据后打开对应标定窗口"
|
||||
Foreground="#A0AEC0" FontSize="11" VerticalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Footer -->
|
||||
<Border Grid.Row="3" BorderBrush="#E0E4EA" BorderThickness="0,1,0,0"
|
||||
Background="#FAFBFC" CornerRadius="0,0,6,6" Padding="10,0">
|
||||
<TextBlock Text="共 4 个标定区域" Foreground="#A0AEC0" FontSize="11"
|
||||
VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
|
||||
<customControl:LoadingWaitView Grid.ColumnSpan="2" Panel.ZIndex="1000"/>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// FusionMultipleCalibView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class FusionMultipleCalibView : UserControl
|
||||
{
|
||||
public FusionMultipleCalibView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,711 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.PadFusionCalibView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
xmlns:mw="http://www.maxwell-gp.com/"
|
||||
xmlns:customControl="clr-namespace:MainShell.Resources.CustomControl"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="800" d:DesignWidth="1200"
|
||||
Loaded="{mw:Action viewLoad}"
|
||||
Unloaded="{mw:Action viewUnLoad}">
|
||||
|
||||
<UserControl.Resources>
|
||||
<BooleanToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
|
||||
|
||||
<Style x:Key="VerifyButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="110"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="0,0,6,0"/>
|
||||
<Setter Property="Background" Value="#2B6CB0"/>
|
||||
<Setter Property="BorderBrush" Value="#2B6CB0"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#2C5282"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="#1A365D"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Background" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ModuleCardStyle" TargetType="Border">
|
||||
<Setter Property="Background" Value="White"/>
|
||||
<Setter Property="BorderBrush" Value="#E0E4EA"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="CornerRadius" Value="6"/>
|
||||
<Setter Property="Margin" Value="0,0,0,12"/>
|
||||
<Setter Property="Effect">
|
||||
<Setter.Value>
|
||||
<DropShadowEffect Color="#000000" Opacity="0.06" BlurRadius="8" ShadowDepth="2"
|
||||
Direction="270"/>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="SectionHeaderTextStyle" TargetType="TextBlock">
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ParamLabelStyle" TargetType="TextBlock">
|
||||
<Setter Property="Foreground" Value="#4A5568"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Right"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ParamNumberBoxStyle" TargetType="mw:NumberBox">
|
||||
<Setter Property="Width" Value="100"/>
|
||||
<Setter Property="Height" Value="28"/>
|
||||
<Setter Property="Margin" Value="6,2"/>
|
||||
<Setter Property="mw:NumericKeypadAttach.IsEnabled" Value="True"/>
|
||||
<Setter Property="Minimum" Value="-99999"/>
|
||||
<Setter Property="Maximum" Value="99999"/>
|
||||
<Setter Property="DecimalPlaces" Value="3"/>
|
||||
<Setter Property="Foreground" Value="#1568D5"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ReadOnlyNumberBoxStyle" TargetType="mw:NumberBox">
|
||||
<Setter Property="Width" Value="100"/>
|
||||
<Setter Property="Height" Value="28"/>
|
||||
<Setter Property="Margin" Value="6,2"/>
|
||||
<Setter Property="mw:NumericKeypadAttach.IsEnabled" Value="True"/>
|
||||
<Setter Property="Minimum" Value="-99999"/>
|
||||
<Setter Property="Maximum" Value="99999"/>
|
||||
<Setter Property="DecimalPlaces" Value="3"/>
|
||||
<Setter Property="IsReadOnly" Value="True"/>
|
||||
<Setter Property="Background" Value="#F0F4F8"/>
|
||||
<Setter Property="Foreground" Value="#4A5568"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="IntParamNumberBoxStyle" TargetType="mw:IntNumberBox">
|
||||
<Setter Property="Width" Value="100"/>
|
||||
<Setter Property="Height" Value="28"/>
|
||||
<Setter Property="Margin" Value="6,2"/>
|
||||
<Setter Property="mw:NumericKeypadAttach.IsEnabled" Value="True"/>
|
||||
<Setter Property="Minimum" Value="0"/>
|
||||
<Setter Property="Maximum" Value="1000"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="SmallActionButtonStyle" TargetType="Button">
|
||||
<Setter Property="Height" Value="28"/>
|
||||
<Setter Property="Padding" Value="10,0"/>
|
||||
<Setter Property="Margin" Value="4,2"/>
|
||||
<Setter Property="FontSize" Value="11"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Border x:Name="bd" Background="#EDF2F7" BorderBrush="#CBD5E0"
|
||||
BorderThickness="1" CornerRadius="4"
|
||||
Padding="{TemplateBinding Padding}">
|
||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="#E2E8F0"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="#CBD5E0"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter TargetName="bd" Property="Background" Value="#F7FAFC"/>
|
||||
<Setter TargetName="bd" Property="BorderBrush" Value="#E2E8F0"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="StartButtonStyle" TargetType="Button" BasedOn="{StaticResource
|
||||
BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="110"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="0,0,6,0"/>
|
||||
<Setter Property="Background" Value="#1A202C"/>
|
||||
<Setter Property="BorderBrush" Value="#1A202C"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#2D3748"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="#0F141B"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Background" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="StopButtonStyle" TargetType="Button" BasedOn="{StaticResource
|
||||
BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="110"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="0,0,6,0"/>
|
||||
<Setter Property="Background" Value="#E53E3E"/>
|
||||
<Setter Property="BorderBrush" Value="#E53E3E"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#C53030"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="#9B2C2C"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</UserControl.Resources>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- ==================== 左侧:相机预览 ==================== -->
|
||||
<Border Grid.Column="0" Margin="0,0,4,0">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="32"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0" Padding="10,0">
|
||||
<Grid>
|
||||
<TextBlock Text="相机预览"
|
||||
Foreground="#7A8FA6"
|
||||
FontSize="11"
|
||||
FontWeight="SemiBold"
|
||||
VerticalAlignment="Center"/>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right"
|
||||
VerticalAlignment="Center">
|
||||
<Ellipse Width="7" Height="7" Fill="#28A745" Margin="0,0,4,0"/>
|
||||
<TextBlock Text="LIVE" Foreground="#28A745" FontSize="10" FontWeight="Bold"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<ContentControl Grid.Row="1" Content="{Binding CameraAxisViewModelSevice}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ==================== 右侧:Tab切换 ==================== -->
|
||||
<Grid Grid.Column="1">
|
||||
<TabControl>
|
||||
<!-- ====== Tab 1:标定 ====== -->
|
||||
<TabItem Header="标定">
|
||||
<ScrollViewer VerticalScrollBarVisibility="Auto"
|
||||
HorizontalScrollBarVisibility="Disabled"
|
||||
CanContentScroll="False"
|
||||
PanningMode="VerticalOnly"
|
||||
Padding="8,8,8,0">
|
||||
<StackPanel>
|
||||
|
||||
<!-- ====== 卡片 1:PHS运动系标定位置 ====== -->
|
||||
<Border Style="{StaticResource ModuleCardStyle}" IsEnabled="{Binding Motion.IsFinish}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0"
|
||||
Background="#F7F9FC"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
CornerRadius="6,6,0,0"
|
||||
Padding="10,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#E8821A" VerticalAlignment="Center"
|
||||
Margin="0,0,5,0"/>
|
||||
<TextBlock Text="PHS运动系标定位置"
|
||||
Foreground="#E8821A"
|
||||
Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="1" Padding="10,8">
|
||||
<StackPanel>
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="90"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="PHS平台标定Y1(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding FusionCalibParItem.MoveAxisPos, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="80"/>
|
||||
<Button Grid.Column="2"
|
||||
Content="移到此位置"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnMovePhsCalibPosPosition}"/>
|
||||
</Grid>
|
||||
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="90"/>
|
||||
<ColumnDefinition Width="40"/>
|
||||
<ColumnDefinition Width="90"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="X1:"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding FusionCalibParItem.ApproachXPos}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="80"/>
|
||||
<TextBlock Grid.Column="2"
|
||||
Text="Y2:"
|
||||
Style="{StaticResource ParamLabelStyle}"/>
|
||||
<mw:NumberBox Grid.Column="3"
|
||||
Value="{Binding FusionCalibParItem.ApproachYPos}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="80"/>
|
||||
<Button Grid.Column="4"
|
||||
Content="中心对齐"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnApproachPhsCalibPosition}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ====== 卡片 2:相机起始位置 ====== -->
|
||||
<Border Style="{StaticResource ModuleCardStyle}" IsEnabled="{Binding Motion.IsFinish}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0"
|
||||
Background="#F7F9FC"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
CornerRadius="6,6,0,0"
|
||||
Padding="10,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#2D3748" VerticalAlignment="Center"
|
||||
Margin="0,0,5,0"/>
|
||||
<TextBlock Text="相机起始位置"
|
||||
Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="1" Padding="10,8">
|
||||
<StackPanel>
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="CameraX(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding FusionCalibParItem.CameraAxisPos, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="100"/>
|
||||
<Button Grid.Column="2"
|
||||
Content="计算位置"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnCalculateCameraPosition}"/>
|
||||
<Button Grid.Column="3"
|
||||
Content="读取当前位置"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnSetCameraPosition}"/>
|
||||
<Button Grid.Column="4"
|
||||
Content="移到此位置"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnMoveCameraPosition}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ====== 卡片 3:PHS起始位置 ====== -->
|
||||
<Border Style="{StaticResource ModuleCardStyle}" IsEnabled="{Binding Motion.IsFinish}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0"
|
||||
Background="#F7F9FC"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
CornerRadius="6,6,0,0"
|
||||
Padding="10,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#2D3748" VerticalAlignment="Center"
|
||||
Margin="0,0,5,0"/>
|
||||
<TextBlock Text="PHS起始位置"
|
||||
Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="1" Padding="10,8">
|
||||
<StackPanel>
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="StartX(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding FusionCalibParItem.StartX}"
|
||||
Style="{StaticResource ReadOnlyNumberBoxStyle}"
|
||||
Width="100"/>
|
||||
<TextBlock Grid.Column="2"
|
||||
Text="StartY(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"/>
|
||||
<mw:NumberBox Grid.Column="3"
|
||||
Value="{Binding FusionCalibParItem.StartY}"
|
||||
Style="{StaticResource ReadOnlyNumberBoxStyle}"
|
||||
Width="100"/>
|
||||
</Grid>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="0,4,0,0">
|
||||
<Button Content="计算位置"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnCalculatePhsPosition}"/>
|
||||
<Button Content="读取当前位置"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnSetStageStartPosition}"/>
|
||||
<Button Content="移到此位置"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnMoveStageStartPosition}"/>
|
||||
<Button Content="对齐中心"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnMoveToCenter}"/>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ====== 卡片 4:标定参数 ====== -->
|
||||
<Border Style="{StaticResource ModuleCardStyle}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0"
|
||||
Background="#F7F9FC"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
CornerRadius="6,6,0,0"
|
||||
Padding="10,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#2D3748" VerticalAlignment="Center"
|
||||
Margin="0,0,5,0"/>
|
||||
<TextBlock Text="标定参数"
|
||||
Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="1" Padding="10,8" IsEnabled="{Binding Motion.IsFinish}">
|
||||
<StackPanel>
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="WaferStepXY(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding FusionCalibParItem.CalibStep, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="100"/>
|
||||
<TextBlock Grid.Column="2"
|
||||
Text="WaferCountXY:"
|
||||
Style="{StaticResource ParamLabelStyle}"/>
|
||||
<mw:IntNumberBox Grid.Column="3"
|
||||
Value="{Binding FusionCalibParItem.CalibCount, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="100"/>
|
||||
</Grid>
|
||||
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="StepX1(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding FusionCalibParItem.Step, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="100"/>
|
||||
<TextBlock Grid.Column="2"
|
||||
Text="CountX1:"
|
||||
Style="{StaticResource ParamLabelStyle}"/>
|
||||
<mw:IntNumberBox Grid.Column="3"
|
||||
Value="{Binding FusionCalibParItem.Count, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Minimum="1"
|
||||
Maximum="10000"
|
||||
Width="100"/>
|
||||
</Grid>
|
||||
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right"
|
||||
Margin="0,8,0,0">
|
||||
<Button Content="开始"
|
||||
Click="{mw:Action btnStart}"
|
||||
Style="{StaticResource StartButtonStyle}"
|
||||
IsEnabled="{Binding Motion.IsFinish}"/>
|
||||
<Button Content="停止"
|
||||
Click="{mw:Action btnStop}"
|
||||
Style="{StaticResource StopButtonStyle}"/>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
</TabItem>
|
||||
|
||||
<!-- ====== Tab 2:验证 ====== -->
|
||||
<TabItem Header="验证">
|
||||
<ScrollViewer VerticalScrollBarVisibility="Auto"
|
||||
HorizontalScrollBarVisibility="Disabled"
|
||||
CanContentScroll="False"
|
||||
PanningMode="VerticalOnly"
|
||||
Padding="8,8,8,0">
|
||||
<StackPanel>
|
||||
|
||||
<!-- ====== 卡片 1:PHS运动系标定位置 ====== -->
|
||||
<Border Style="{StaticResource ModuleCardStyle}" IsEnabled="{Binding Motion.IsFinish}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0"
|
||||
Background="#F7F9FC"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
CornerRadius="6,6,0,0"
|
||||
Padding="10,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#E8821A" VerticalAlignment="Center"
|
||||
Margin="0,0,5,0"/>
|
||||
<TextBlock Text="PHS运动系标定位置"
|
||||
Foreground="#E8821A"
|
||||
Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="1" Padding="10,8">
|
||||
<StackPanel>
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="180"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="PHS平台标定Y1(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding FusionCalibParItem.MoveAxisPos, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="80"/>
|
||||
<Button Grid.Column="2"
|
||||
Content="移到此位置"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnMovePhsCalibPosPosition}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ====== 卡片 2:PHS运动位置(验证) ====== -->
|
||||
<Border Style="{StaticResource ModuleCardStyle}" IsEnabled="{Binding Motion.IsFinish}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0"
|
||||
Background="#F7F9FC"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
CornerRadius="6,6,0,0"
|
||||
Padding="10,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#2D3748" VerticalAlignment="Center"
|
||||
Margin="0,0,5,0"/>
|
||||
<TextBlock Text="PHS运动位置"
|
||||
Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="1" Padding="10,8">
|
||||
<StackPanel>
|
||||
<!-- 起点坐标 -->
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="StartX(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding FusionCalibParItem.WaferStartVerifyX}"
|
||||
Style="{StaticResource ReadOnlyNumberBoxStyle}"
|
||||
Width="100"/>
|
||||
<TextBlock Grid.Column="2"
|
||||
Text="StartY(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"/>
|
||||
<mw:NumberBox Grid.Column="3"
|
||||
Value="{Binding FusionCalibParItem.WaferStartVerifyY}"
|
||||
Style="{StaticResource ReadOnlyNumberBoxStyle}"
|
||||
Width="100"/>
|
||||
</Grid>
|
||||
|
||||
<!-- 设置起点 -->
|
||||
<StackPanel Orientation="Horizontal" Margin="0,4,0,0">
|
||||
<Button Content="设置起点"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnMoveToCenter}"/>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Step + 移动到起点 -->
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="Step(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding FusionCalibParItem.WaferVerityStep}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="100"/>
|
||||
<Button Grid.Column="2"
|
||||
Content="移动到起点"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action btnMoveToStartPoint}"/>
|
||||
</Grid>
|
||||
|
||||
<!-- Count X / Y -->
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="CountX:"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:IntNumberBox Grid.Column="1"
|
||||
Value="{Binding FusionCalibParItem.WaferVerityCountX}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="100"/>
|
||||
<TextBlock Grid.Column="2"
|
||||
Text="CountY:"
|
||||
Style="{StaticResource ParamLabelStyle}"/>
|
||||
<mw:IntNumberBox Grid.Column="3"
|
||||
Value="{Binding FusionCalibParItem.WaferVerityCountY}"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"
|
||||
Width="100"/>
|
||||
</Grid>
|
||||
|
||||
<!-- 飞拍 + 验证按钮 -->
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right"
|
||||
Margin="0,8,0,0">
|
||||
<Button Content="开始飞拍"
|
||||
Click="{mw:Action btnMoveWafer}"
|
||||
Style="{StaticResource StartButtonStyle}"
|
||||
IsEnabled="{Binding Motion.IsFinish}"/>
|
||||
<Button Content="以当前相机位置验证"
|
||||
Click="{mw:Action btnVerityWafer}"
|
||||
Style="{StaticResource VerifyButtonStyle}"
|
||||
Width="150"
|
||||
IsEnabled="{Binding Motion.IsFinish}"/>
|
||||
<Button Content="停止"
|
||||
Click="{mw:Action btnStopVerityWafer}"
|
||||
Style="{StaticResource StopButtonStyle}"/>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
</TabItem>
|
||||
</TabControl>
|
||||
</Grid>
|
||||
|
||||
<customControl:LoadingWaitView Grid.ColumnSpan="2" Panel.ZIndex="1000"/>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// PadFusionCalibView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class PadFusionCalibView : UserControl
|
||||
{
|
||||
public PadFusionCalibView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.FusionCalibView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
xmlns:mw="http://www.maxwell-gp.com/"
|
||||
mc:Ignorable="d"
|
||||
Unloaded="{mw:Action viewUnLoad}"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition/>
|
||||
<RowDefinition Height="60"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Grid.Row="0" Background="#F5F5F5" BorderBrush="#DDD" BorderThickness="0,0,0,1">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
<TextBlock Text="当前标定:" VerticalAlignment="Center" FontSize="14"/>
|
||||
<TextBlock Text="{Binding CurrentCameraName}" VerticalAlignment="Center"
|
||||
FontSize="14" FontWeight="Bold" Margin="0,0,16,0"/>
|
||||
<TextBlock Text="{Binding ProgressText}" VerticalAlignment="Center"
|
||||
FontSize="13" Foreground="#888"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<ScrollViewer Grid.Row="1" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
|
||||
<ContentControl mw:View.Model="{Binding ShowScreenVM}"/>
|
||||
</ScrollViewer>
|
||||
<Border Grid.Row="2">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<Button Content="上一个" Margin="5,2" Command="{Binding PrevCommand}" IsEnabled="{Binding IsEnablePrev}"/>
|
||||
<Button Content="下一个" Margin="5,2" Command="{Binding NextCommand}" IsEnabled="{Binding IsEnableNext}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// FusionCalibView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class FusionCalibView : UserControl
|
||||
{
|
||||
public FusionCalibView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,359 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.FusionMenuCalibView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
xmlns:customControl="clr-namespace:MainShell.Resources.CustomControl"
|
||||
mc:Ignorable="d"
|
||||
xmlns:mw="http://www.maxwell-gp.com/"
|
||||
d:DesignHeight="800" d:DesignWidth="1200">
|
||||
<UserControl.Resources>
|
||||
<BooleanToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
|
||||
|
||||
<Style x:Key="ModuleCardStyle" TargetType="Border">
|
||||
<Setter Property="Background" Value="White"/>
|
||||
<Setter Property="BorderBrush" Value="#E0E4EA"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="CornerRadius" Value="6"/>
|
||||
<Setter Property="Margin" Value="0,0,0,12"/>
|
||||
<Setter Property="Effect">
|
||||
<Setter.Value>
|
||||
<DropShadowEffect Color="#000000" Opacity="0.06" BlurRadius="8" ShadowDepth="2" Direction="270"/>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="SectionHeaderTextStyle" TargetType="TextBlock">
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="BadgeStyle" TargetType="Border">
|
||||
<Setter Property="CornerRadius" Value="3"/>
|
||||
<Setter Property="Padding" Value="5,1"/>
|
||||
<Setter Property="Margin" Value="3,0"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="SmallActionButtonStyle" TargetType="Button">
|
||||
<Setter Property="Height" Value="28"/>
|
||||
<Setter Property="Padding" Value="10,0"/>
|
||||
<Setter Property="Margin" Value="4,2"/>
|
||||
<Setter Property="FontSize" Value="11"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Border x:Name="bd" Background="#EDF2F7" BorderBrush="#CBD5E0"
|
||||
BorderThickness="1" CornerRadius="4"
|
||||
Padding="{TemplateBinding Padding}">
|
||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="#E2E8F0"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="#CBD5E0"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter TargetName="bd" Property="Background" Value="#F7FAFC"/>
|
||||
<Setter TargetName="bd" Property="BorderBrush" Value="#E2E8F0"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="StartCalibButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="120"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="0,0,10,0"/>
|
||||
<Setter Property="Background" Value="#1A202C"/>
|
||||
<Setter Property="BorderBrush" Value="#1A202C"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#2D3748"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="#0F141B"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Background" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ModuleWriteButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="110"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="4,0"/>
|
||||
<Setter Property="Background" Value="{StaticResource TeachOrange}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource TeachOrange}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{StaticResource TeachOrangeHover}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource TeachOrangeHover}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="{StaticResource TeachOrangePressed}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource TeachOrangePressed}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Background" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</UserControl.Resources>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- 左侧:相机预览 -->
|
||||
<Border Grid.Column="0" Margin="0,0,4,0">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="32"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Grid.Row="0" Padding="10,0">
|
||||
<Grid>
|
||||
<TextBlock Text="相机预览" Foreground="#7A8FA6" FontSize="11"
|
||||
FontWeight="SemiBold" VerticalAlignment="Center"/>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Ellipse Width="7" Height="7" Fill="#28A745" Margin="0,0,4,0"/>
|
||||
<TextBlock Text="LIVE" Foreground="#28A745" FontSize="10" FontWeight="Bold"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
<ContentControl Grid.Row="1" Content="{Binding CameraAxisViewModelService}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- 右侧:工具栏 + 标定卡片 -->
|
||||
<Grid Grid.Column="1">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="50"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- 顶部工具栏 -->
|
||||
<Border Grid.Row="0" Background="White" BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1" Padding="8,0">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Button Content="读取标定数据" Command="{mw:Action btnReadCalibData}"
|
||||
Style="{StaticResource SmallActionButtonStyle}" Width="110" Height="34" Margin="5,0"/>
|
||||
<Button Content="保存标定数据" Command="{mw:Action btnSaveCalibData}"
|
||||
Style="{StaticResource SmallActionButtonStyle}" Width="110" Height="34" Margin="5,0"/>
|
||||
<Button Content="应用标定数据" Command="{mw:Action btnApplyCalibData}"
|
||||
Style="{StaticResource ModuleWriteButtonStyle}" Width="110" Height="34" Margin="5,0"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- 标定卡片 -->
|
||||
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto"
|
||||
HorizontalScrollBarVisibility="Disabled" CanContentScroll="False"
|
||||
PanningMode="VerticalOnly" Padding="8,8,8,0">
|
||||
<Border Style="{StaticResource ModuleCardStyle}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Header -->
|
||||
<Border Grid.Row="0" Background="#F7F9FC" BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1" CornerRadius="6,6,0,0" Padding="10,0">
|
||||
<Grid>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<TextBlock Text="[] " Foreground="#8892A0" FontSize="14" VerticalAlignment="Center"/>
|
||||
<TextBlock FontWeight="SemiBold" FontSize="13" Foreground="#2D3748" VerticalAlignment="Center">
|
||||
<Run Text="融合标定数据"/>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Border Style="{StaticResource BadgeStyle}" Background="#EDF2F7">
|
||||
<TextBlock Text="4区域融合" FontSize="10" Foreground="#718096"/>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- Section 1: 标定参数表格 -->
|
||||
<Border Grid.Row="1" BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1" Padding="10,8">
|
||||
<StackPanel>
|
||||
<Grid Margin="0,0,0,6">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#2D3748" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
||||
<TextBlock Text="标定区域参数" Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<DataGrid ItemsSource="{Binding FusionCalibParItem}"
|
||||
SelectedItem="{Binding SelectedCalibPar}"
|
||||
Margin="0,4" Height="200"
|
||||
AutoGenerateColumns="false" SelectionMode="Single"
|
||||
CanUserSortColumns="False" HeadersVisibility="Column"
|
||||
GridLinesVisibility="Horizontal"
|
||||
HorizontalGridLinesBrush="#F0F4F8"
|
||||
BorderBrush="#E0E4EA" BorderThickness="1"
|
||||
RowBackground="White" AlternatingRowBackground="#FAFBFC"
|
||||
RowHeight="28">
|
||||
<DataGrid.ColumnHeaderStyle>
|
||||
<Style TargetType="DataGridColumnHeader">
|
||||
<Setter Property="Background" Value="#F7F9FC"/>
|
||||
<Setter Property="Foreground" Value="#8892A0"/>
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
<Setter Property="FontSize" Value="11"/>
|
||||
<Setter Property="Padding" Value="8,4"/>
|
||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||
<Setter Property="BorderBrush" Value="#E0E4EA"/>
|
||||
<Setter Property="BorderThickness" Value="0,0,0,1"/>
|
||||
</Style>
|
||||
</DataGrid.ColumnHeaderStyle>
|
||||
<DataGrid.CellStyle>
|
||||
<Style TargetType="DataGridCell">
|
||||
<Setter Property="Padding" Value="8,2"/>
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsSelected" Value="True">
|
||||
<Setter Property="Background" Value="#EBF5FF"/>
|
||||
<Setter Property="Foreground" Value="#1568D5"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</DataGrid.CellStyle>
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="序号" IsReadOnly="True" Binding="{Binding Index}" Width="50"/>
|
||||
<DataGridTemplateColumn Width="*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="Y1(mm)"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{StaticResource PrimaryTextBrush}"
|
||||
Text="{Binding MoveAxisPos, StringFormat=F4}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTemplateColumn Width="*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="X1(mm)"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{StaticResource PrimaryTextBrush}"
|
||||
Text="{Binding ApproachXPos, StringFormat=F4}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTemplateColumn Width="*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="Y2(mm)"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{StaticResource PrimaryTextBrush}"
|
||||
Text="{Binding ApproachYPos, StringFormat=F4}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTemplateColumn Width="*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="StartX(mm)"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{StaticResource PrimaryTextBrush}"
|
||||
Text="{Binding StartX, StringFormat=F4}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTemplateColumn Width="*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="StartY(mm)"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{StaticResource PrimaryTextBrush}"
|
||||
Text="{Binding StartY, StringFormat=F4}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTemplateColumn Width="*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="步长(mm)"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{StaticResource PrimaryTextBrush}"
|
||||
Text="{Binding Step, StringFormat=F4}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTemplateColumn Width="*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="行列数"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock VerticalAlignment="Center" Foreground="{StaticResource PrimaryTextBrush}"
|
||||
Text="{Binding Count}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Section 2: 操作按钮 -->
|
||||
<Border Grid.Row="2" BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1" Padding="10,8">
|
||||
<StackPanel>
|
||||
<Grid Margin="0,0,0,6">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#2B6CB0" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
||||
<TextBlock Text="标定操作" Foreground="#2B6CB0" Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<StackPanel Orientation="Horizontal" Margin="0,4">
|
||||
<Button Content="打开标定窗口" Command="{mw:Action btnOpenCalibWindow}"
|
||||
Style="{StaticResource StartCalibButtonStyle}" Width="120"/>
|
||||
<TextBlock Text="选择一行数据后打开对应标定窗口"
|
||||
Foreground="#A0AEC0" FontSize="11" VerticalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Footer -->
|
||||
<Border Grid.Row="3" BorderBrush="#E0E4EA" BorderThickness="0,1,0,0"
|
||||
Background="#FAFBFC" CornerRadius="0,0,6,6" Padding="10,0">
|
||||
<TextBlock Text="共 4 个标定区域" Foreground="#A0AEC0" FontSize="11"
|
||||
VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
|
||||
<customControl:LoadingWaitView Grid.ColumnSpan="2" Panel.ZIndex="1000"/>
|
||||
</Grid>
|
||||
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// FusionMenuCalibView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class FusionMenuCalibView : UserControl
|
||||
{
|
||||
public FusionMenuCalibView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.MotionCalibContentsView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
xmlns:mw="http://www.maxwell-gp.com/"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition/>
|
||||
<RowDefinition Height="50"/>
|
||||
</Grid.RowDefinitions>
|
||||
<!-- 顶部导航栏 -->
|
||||
<Border Grid.Row="0" Background="White" BorderBrush="#E0E4EA" BorderThickness="0,0,0,1" Padding="10,0">
|
||||
<Grid>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<TextBlock Text="当前标定:" VerticalAlignment="Center" FontSize="13" Foreground="#7A8FA6"/>
|
||||
<TextBlock Text="{Binding CurrentCalibName}" VerticalAlignment="Center"
|
||||
FontSize="13" FontWeight="SemiBold" Foreground="#2D3748" Margin="0,0,16,0"/>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<TextBlock Text="{Binding ProgressText}" VerticalAlignment="Center"
|
||||
FontSize="12" Foreground="#A0AEC0"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
<!-- 内容区 -->
|
||||
<ScrollViewer Grid.Row="1" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
|
||||
<ContentControl mw:View.Model="{Binding ShowScreenVM}"/>
|
||||
</ScrollViewer>
|
||||
<!-- 底部导航按钮 -->
|
||||
<Border Grid.Row="2" Background="White" BorderBrush="#E0E4EA" BorderThickness="0,1,0,0" Padding="8,0">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Button Content="上一个" Margin="5,0" Padding="16,0" Height="32"
|
||||
Command="{Binding PrevCommand}" IsEnabled="{Binding IsEnablePrev}"/>
|
||||
<Button Content="下一个" Margin="5,0" Padding="16,0" Height="32"
|
||||
Command="{Binding NextCommand}" IsEnabled="{Binding IsEnableNext}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// MotionCalibContentsView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class MotionCalibContentsView : UserControl
|
||||
{
|
||||
public MotionCalibContentsView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.MotionCalibView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
xmlns:mwFramework="clr-namespace:MwFramework.Controls.SystemCalib;assembly=MwFramework.Controls.SystemCalib"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
<mwFramework:MotionSysCalibControlA DataContext="{Binding Service}"/>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// MotionCalibView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class MotionCalibView : UserControl
|
||||
{
|
||||
public MotionCalibView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,405 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.MotionMultipleCalibView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
xmlns:mw="http://www.maxwell-gp.com/"
|
||||
xmlns:customControl="clr-namespace:MainShell.Resources.CustomControl"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="800" d:DesignWidth="1200">
|
||||
<UserControl.Resources>
|
||||
<BooleanToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
|
||||
|
||||
<!-- 卡片样式 -->
|
||||
<Style x:Key="ModuleCardStyle" TargetType="Border">
|
||||
<Setter Property="Background" Value="White"/>
|
||||
<Setter Property="BorderBrush" Value="#E0E4EA"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="CornerRadius" Value="6"/>
|
||||
<Setter Property="Margin" Value="0,0,0,12"/>
|
||||
<Setter Property="Effect">
|
||||
<Setter.Value>
|
||||
<DropShadowEffect Color="#000000" Opacity="0.06" BlurRadius="8" ShadowDepth="2" Direction="270"/>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="SectionHeaderTextStyle" TargetType="TextBlock">
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="BadgeStyle" TargetType="Border">
|
||||
<Setter Property="CornerRadius" Value="3"/>
|
||||
<Setter Property="Padding" Value="5,1"/>
|
||||
<Setter Property="Margin" Value="3,0"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
</Style>
|
||||
|
||||
<!-- 表头样式 -->
|
||||
<Style x:Key="TableHeaderStyle" TargetType="TextBlock">
|
||||
<Setter Property="FontSize" Value="11"/>
|
||||
<Setter Property="Foreground" Value="#8892A0"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
</Style>
|
||||
|
||||
<!-- 按钮样式 -->
|
||||
<Style x:Key="SmallActionButtonStyle" TargetType="Button">
|
||||
<Setter Property="Height" Value="28"/>
|
||||
<Setter Property="Padding" Value="10,0"/>
|
||||
<Setter Property="Margin" Value="4,2"/>
|
||||
<Setter Property="FontSize" Value="11"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Border x:Name="bd" Background="#EDF2F7" BorderBrush="#CBD5E0"
|
||||
BorderThickness="1" CornerRadius="4"
|
||||
Padding="{TemplateBinding Padding}">
|
||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="#E2E8F0"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="#CBD5E0"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter TargetName="bd" Property="Background" Value="#F7FAFC"/>
|
||||
<Setter TargetName="bd" Property="BorderBrush" Value="#E2E8F0"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="StartCalibButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="110"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="0,0,6,0"/>
|
||||
<Setter Property="Background" Value="#1A202C"/>
|
||||
<Setter Property="BorderBrush" Value="#1A202C"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#2D3748"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="#0F141B"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Background" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ModuleWriteButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="110"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="4,0"/>
|
||||
<Setter Property="Background" Value="{StaticResource TeachOrange}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource TeachOrange}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{StaticResource TeachOrangeHover}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource TeachOrangeHover}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="{StaticResource TeachOrangePressed}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource TeachOrangePressed}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Background" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</UserControl.Resources>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- ==================== 左侧:相机预览 ==================== -->
|
||||
<Border Grid.Column="0" Margin="0,0,4,0">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="32"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0" Padding="10,0">
|
||||
<Grid>
|
||||
<TextBlock Text="相机预览"
|
||||
Foreground="#7A8FA6"
|
||||
FontSize="11"
|
||||
FontWeight="SemiBold"
|
||||
VerticalAlignment="Center"/>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Ellipse Width="7" Height="7" Fill="#28A745" Margin="0,0,4,0"/>
|
||||
<TextBlock Text="LIVE" Foreground="#28A745" FontSize="10" FontWeight="Bold"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<ContentControl Grid.Row="1" Content="{Binding CameraAxisViewModelService}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ==================== 右侧:工具栏 + 标定卡片 ==================== -->
|
||||
<Grid Grid.Column="1">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="50"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- 顶部工具栏 -->
|
||||
<Border Grid.Row="0" Background="White" BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1" Padding="8,0">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Button Content="读取标定数据"
|
||||
Command="{mw:Action btnReadCalibData}"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Width="110" Height="34" Margin="5,0"/>
|
||||
<Button Content="保存标定数据"
|
||||
Command="{mw:Action btnSaveCalibData}"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Width="110" Height="34" Margin="5,0"/>
|
||||
<Button Content="应用标定数据"
|
||||
Command="{mw:Action btnApplyCalibData}"
|
||||
Style="{StaticResource ModuleWriteButtonStyle}"
|
||||
Width="110" Height="34" Margin="5,0"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- 标定卡片 -->
|
||||
<ScrollViewer Grid.Row="1"
|
||||
VerticalScrollBarVisibility="Auto"
|
||||
HorizontalScrollBarVisibility="Disabled"
|
||||
CanContentScroll="False"
|
||||
PanningMode="VerticalOnly"
|
||||
Padding="8,8,8,0">
|
||||
|
||||
<Border Style="{StaticResource ModuleCardStyle}" IsEnabled="{Binding Motion.IsFinish}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<!-- Header -->
|
||||
<RowDefinition Height="Auto"/>
|
||||
<!-- 标定参数表格 -->
|
||||
<RowDefinition Height="Auto"/>
|
||||
<!-- 操作按钮 -->
|
||||
<RowDefinition Height="Auto"/>
|
||||
<!-- Footer -->
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- ====== 卡片 Header ====== -->
|
||||
<Border Grid.Row="0"
|
||||
Background="#F7F9FC"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
CornerRadius="6,6,0,0"
|
||||
Padding="10,0">
|
||||
<Grid>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<TextBlock Text="[] " Foreground="#8892A0" FontSize="14" VerticalAlignment="Center"/>
|
||||
<TextBlock FontWeight="SemiBold" FontSize="13" Foreground="#2D3748" VerticalAlignment="Center">
|
||||
<Run Text="运动系标定数据"/>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Border Style="{StaticResource BadgeStyle}" Background="#EDF2F7">
|
||||
<TextBlock Text="5区域融合" FontSize="10" Foreground="#718096"/>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ====== Section 1:标定参数表格 ====== -->
|
||||
<Border Grid.Row="1"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
Padding="10,8">
|
||||
<StackPanel>
|
||||
<!-- 区域标题 -->
|
||||
<Grid Margin="0,0,0,6">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#2D3748" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
||||
<TextBlock Text="标定区域参数" Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<!-- DataGrid -->
|
||||
<DataGrid Name="dataGridMark"
|
||||
ItemsSource="{Binding MotionCalibParItem}"
|
||||
SelectedItem="{Binding SelectedCalibPar}"
|
||||
Margin="0,4"
|
||||
Height="220"
|
||||
RowHeight="35"
|
||||
AutoGenerateColumns="false"
|
||||
SelectionMode="Single"
|
||||
CanUserSortColumns="False"
|
||||
HeadersVisibility="Column"
|
||||
GridLinesVisibility="Horizontal"
|
||||
HorizontalGridLinesBrush="#F0F4F8"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="1"
|
||||
RowBackground="White"
|
||||
AlternatingRowBackground="#FAFBFC">
|
||||
<DataGrid.ColumnHeaderStyle>
|
||||
<Style TargetType="DataGridColumnHeader">
|
||||
<!--<Setter Property="Background" Value="#F7F9FC"/>-->
|
||||
<Setter Property="Foreground" Value="#8892A0"/>
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
<Setter Property="FontSize" Value="11"/>
|
||||
<Setter Property="Padding" Value="8,4"/>
|
||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Center"/>
|
||||
<Setter Property="BorderBrush" Value="#E0E4EA"/>
|
||||
<Setter Property="BorderThickness" Value="0,0,0,1"/>
|
||||
</Style>
|
||||
</DataGrid.ColumnHeaderStyle>
|
||||
<DataGrid.CellStyle>
|
||||
<Style TargetType="DataGridCell">
|
||||
<Setter Property="Padding" Value="8,2"/>
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsSelected" Value="True">
|
||||
<Setter Property="Background" Value="#EBF5FF"/>
|
||||
<Setter Property="Foreground" Value="#1568D5"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</DataGrid.CellStyle>
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="序号" IsReadOnly="True" Binding="{Binding Id}" Width="50"/>
|
||||
<DataGridTemplateColumn Width="*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="起点X(mm)"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Foreground="{StaticResource PrimaryTextBrush}" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding StartAxisX, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, StringFormat=F4}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTemplateColumn Width="*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="起点Y(mm)"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Foreground="{StaticResource PrimaryTextBrush}" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding StartAxisY, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, StringFormat=F4}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTemplateColumn Width="0.5*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="行数"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Foreground="{StaticResource PrimaryTextBrush}" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding Rows, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTemplateColumn Width="*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="行步长(mm)"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Foreground="{StaticResource PrimaryTextBrush}" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding RowStep, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, StringFormat=F4}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTemplateColumn Width="0.5*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="列数"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Foreground="{StaticResource PrimaryTextBrush}" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding Columns, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTemplateColumn Width="*">
|
||||
<DataGridTemplateColumn.Header>
|
||||
<TextBlock Text="列步长(mm)"/>
|
||||
</DataGridTemplateColumn.Header>
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Foreground="{StaticResource PrimaryTextBrush}" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding ColumnStep, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, StringFormat=F4}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- ====== Section 2:操作按钮 ====== -->
|
||||
<Border Grid.Row="2"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
Padding="10,8">
|
||||
<StackPanel>
|
||||
<Grid Margin="0,0,0,6">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#2B6CB0" VerticalAlignment="Center"
|
||||
Margin="0,0,5,0"/>
|
||||
<TextBlock Text="标定操作"
|
||||
Foreground="#2B6CB0"
|
||||
Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="0,4">
|
||||
<Button Content="打开标定窗口"
|
||||
Command="{mw:Action btnOpenCalibWindow}"
|
||||
Style="{StaticResource StartCalibButtonStyle}"
|
||||
Width="120"
|
||||
Margin="0,0,10,0"/>
|
||||
<TextBlock Text="选择一行数据后打开对应标定窗口"
|
||||
Foreground="#A0AEC0"
|
||||
FontSize="11"
|
||||
VerticalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- ====== 卡片 Footer ====== -->
|
||||
<Border Grid.Row="3"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,1,0,0"
|
||||
Background="#FAFBFC"
|
||||
CornerRadius="0,0,6,6"
|
||||
Padding="10,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<TextBlock Text="共 5 个标定区域"
|
||||
Foreground="#A0AEC0"
|
||||
FontSize="11"
|
||||
VerticalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
|
||||
<!-- 全局 Loading 遮罩 -->
|
||||
<customControl:LoadingWaitView Grid.ColumnSpan="2" Panel.ZIndex="1000"/>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// MotionMultipleCalibView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class MotionMultipleCalibView : UserControl
|
||||
{
|
||||
public MotionMultipleCalibView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.PixRatioCalibContentsView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
xmlns:mw="http://www.maxwell-gp.com/"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition/>
|
||||
<RowDefinition Height="50"/>
|
||||
</Grid.RowDefinitions>
|
||||
<!-- 顶部导航栏 -->
|
||||
<Border Grid.Row="0" Background="White" BorderBrush="#E0E4EA" BorderThickness="0,0,0,1" Padding="10,0">
|
||||
<Grid>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<TextBlock Text="当前标定:" VerticalAlignment="Center" FontSize="13" Foreground="#7A8FA6"/>
|
||||
<TextBlock Text="{Binding CurrentCalibName}" VerticalAlignment="Center"
|
||||
FontSize="13" FontWeight="SemiBold" Foreground="#2D3748" Margin="0,0,16,0"/>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<TextBlock Text="{Binding ProgressText}" VerticalAlignment="Center"
|
||||
FontSize="12" Foreground="#A0AEC0"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
<!-- 内容区 -->
|
||||
<ScrollViewer Grid.Row="1" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
|
||||
<ContentControl mw:View.Model="{Binding ShowScreenVM}"/>
|
||||
</ScrollViewer>
|
||||
<!-- 底部导航按钮 -->
|
||||
<Border Grid.Row="2" Background="White" BorderBrush="#E0E4EA" BorderThickness="0,1,0,0" Padding="8,0">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Button Content="上一个" Margin="5,0" Padding="16,0" Height="32"
|
||||
Command="{Binding PrevCommand}" IsEnabled="{Binding IsEnablePrev}"/>
|
||||
<Button Content="下一个" Margin="5,0" Padding="16,0" Height="32"
|
||||
Command="{Binding NextCommand}" IsEnabled="{Binding IsEnableNext}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// PixRatioCalibContentsView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class PixRatioCalibContentsView : UserControl
|
||||
{
|
||||
public PixRatioCalibContentsView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.PixRatioCalibView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
xmlns:mwFramework="clr-namespace:MwFramework.Controls.SystemCalib;assembly=MwFramework.Controls.SystemCalib"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
<mwFramework:CameraParaCalibControlA DataContext="{Binding Service}"/>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// PixRatioCalibView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class PixRatioCalibView : UserControl
|
||||
{
|
||||
public PixRatioCalibView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.RotateCenterCalibContentsView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
xmlns:mw="http://www.maxwell-gp.com/"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<RowDefinition/>
|
||||
<RowDefinition Height="50"/>
|
||||
</Grid.RowDefinitions>
|
||||
<!-- 顶部导航栏 -->
|
||||
<Border Grid.Row="0" Background="White" BorderBrush="#E0E4EA" BorderThickness="0,0,0,1" Padding="10,0">
|
||||
<Grid>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<TextBlock Text="当前标定:" VerticalAlignment="Center" FontSize="13" Foreground="#7A8FA6"/>
|
||||
<TextBlock Text="{Binding CurrentCalibName}" VerticalAlignment="Center"
|
||||
FontSize="13" FontWeight="SemiBold" Foreground="#2D3748" Margin="0,0,16,0"/>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<TextBlock Text="{Binding ProgressText}" VerticalAlignment="Center"
|
||||
FontSize="12" Foreground="#A0AEC0"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
<!-- 内容区 -->
|
||||
<ScrollViewer Grid.Row="1" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
|
||||
<ContentControl mw:View.Model="{Binding ShowScreenVM}"/>
|
||||
</ScrollViewer>
|
||||
<!-- 底部导航按钮 -->
|
||||
<Border Grid.Row="2" Background="White" BorderBrush="#E0E4EA" BorderThickness="0,1,0,0" Padding="8,0">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Button Content="上一个" Margin="5,0" Padding="16,0" Height="32"
|
||||
Command="{Binding PrevCommand}" IsEnabled="{Binding IsEnablePrev}"/>
|
||||
<Button Content="下一个" Margin="5,0" Padding="16,0" Height="32"
|
||||
Command="{Binding NextCommand}" IsEnabled="{Binding IsEnableNext}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// RotateCenterCalibContentsView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class RotateCenterCalibContentsView : UserControl
|
||||
{
|
||||
public RotateCenterCalibContentsView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.RotateCenterCalibView"
|
||||
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:MainShell.AlgorithmCalib.View"
|
||||
xmlns:mwFramework="clr-namespace:MwFramework.Controls.SystemCalib;assembly=MwFramework.Controls.SystemCalib"
|
||||
xmlns:mw="http://www.maxwell-gp.com/"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
<mwFramework:RotateCenterCalibControlA DataContext="{Binding Service}"/>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// RotateCenterCalibView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class RotateCenterCalibView : UserControl
|
||||
{
|
||||
public RotateCenterCalibView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,701 @@
|
||||
<UserControl x:Class="MainShell.AlgorithmCalib.View.RotateMatixFormCalibView"
|
||||
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:mw="http://www.maxwell-gp.com/"
|
||||
xmlns:customControl="clr-namespace:MainShell.Resources.CustomControl"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="800"
|
||||
d:DesignWidth="1200">
|
||||
|
||||
<UserControl.Resources>
|
||||
|
||||
<BooleanToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
|
||||
|
||||
<Style x:Key="ModuleCardStyle" TargetType="Border">
|
||||
<Setter Property="Background" Value="White"/>
|
||||
<Setter Property="BorderBrush" Value="#E0E4EA"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="CornerRadius" Value="6"/>
|
||||
<Setter Property="Margin" Value="0,0,0,12"/>
|
||||
<Setter Property="Effect">
|
||||
<Setter.Value>
|
||||
<DropShadowEffect Color="#000000" Opacity="0.06" BlurRadius="8" ShadowDepth="2" Direction="270"/>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="AvoidanceAxisNameStyle" TargetType="TextBlock">
|
||||
<Setter Property="Foreground" Value="#E8821A"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="TableHeaderStyle" TargetType="TextBlock">
|
||||
<Setter Property="FontSize" Value="11"/>
|
||||
<Setter Property="Foreground" Value="#8892A0"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="CalibAxisNameStyle" TargetType="TextBlock">
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Foreground" Value="#2D3748"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="TargetValueStyle" TargetType="mw:NumberBox">
|
||||
<Setter Property="Width" Value="85"/>
|
||||
<Setter Property="Height" Value="28"/>
|
||||
<Setter Property="Margin" Value="0,1"/>
|
||||
<Setter Property="mw:NumericKeypadAttach.IsEnabled" Value="True"/>
|
||||
<Setter Property="Minimum" Value="-99999"/>
|
||||
<Setter Property="Maximum" Value="99999"/>
|
||||
<Setter Property="DecimalPlaces" Value="3"/>
|
||||
<Setter Property="Foreground" Value="#1568D5"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="SmallIconButtonStyle" TargetType="Button">
|
||||
<Setter Property="Width" Value="28"/>
|
||||
<Setter Property="Height" Value="24"/>
|
||||
<Setter Property="Padding" Value="0"/>
|
||||
<Setter Property="Margin" Value="1,0"/>
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="BorderBrush" Value="Transparent"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Border x:Name="bd"
|
||||
Background="{TemplateBinding Background}"
|
||||
BorderBrush="{TemplateBinding BorderBrush}"
|
||||
BorderThickness="1"
|
||||
CornerRadius="4">
|
||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="#F0F4F8"/>
|
||||
<Setter TargetName="bd" Property="BorderBrush" Value="#CBD5E0"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="#E2E8F0"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="AddAxisButtonStyle" TargetType="Button" BasedOn="{StaticResource SmallIconButtonStyle}">
|
||||
<Setter Property="Width" Value="24"/>
|
||||
<Setter Property="Height" Value="24"/>
|
||||
<Setter Property="Foreground" Value="#28A745"/>
|
||||
<Setter Property="FontSize" Value="15"/>
|
||||
<Setter Property="FontWeight" Value="Bold"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ModuleActionButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="110"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="4,0"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="CalibStartButtonStyle" TargetType="Button" BasedOn="{StaticResource ModuleActionButtonStyle}">
|
||||
<Setter Property="Background" Value="#1A202C"/>
|
||||
<Setter Property="BorderBrush" Value="#1A202C"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#2D3748"/>
|
||||
<Setter Property="BorderBrush" Value="#2D3748"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="#0F141B"/>
|
||||
<Setter Property="BorderBrush" Value="#0F141B"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Background" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
|
||||
<Setter Property="Cursor" Value="Arrow"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ModuleWriteButtonStyle" TargetType="Button" BasedOn="{StaticResource ModuleActionButtonStyle}">
|
||||
<Setter Property="Background" Value="{StaticResource TeachOrange}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource TeachOrange}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{StaticResource TeachOrangeHover}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource TeachOrangeHover}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="{StaticResource TeachOrangePressed}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource TeachOrangePressed}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Background" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
|
||||
<Setter Property="Cursor" Value="Arrow"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="BadgeStyle" TargetType="Border">
|
||||
<Setter Property="CornerRadius" Value="3"/>
|
||||
<Setter Property="Padding" Value="5,1"/>
|
||||
<Setter Property="Margin" Value="3,0"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
</Style>
|
||||
<Style x:Key="SectionHeaderTextStyle" TargetType="TextBlock">
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ParamLabelStyle" TargetType="TextBlock">
|
||||
<Setter Property="Foreground" Value="#4A5568"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Right"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ParamNumberBoxStyle" TargetType="mw:NumberBox">
|
||||
<Setter Property="Width" Value="100"/>
|
||||
<Setter Property="Height" Value="28"/>
|
||||
<Setter Property="Margin" Value="6,2"/>
|
||||
<Setter Property="mw:NumericKeypadAttach.IsEnabled" Value="True"/>
|
||||
<Setter Property="Minimum" Value="-99999"/>
|
||||
<Setter Property="Maximum" Value="99999"/>
|
||||
<Setter Property="DecimalPlaces" Value="3"/>
|
||||
<Setter Property="Foreground" Value="#1568D5"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ReadOnlyNumberBoxStyle" TargetType="mw:NumberBox" BasedOn="{StaticResource ParamNumberBoxStyle}">
|
||||
<Setter Property="IsReadOnly" Value="True"/>
|
||||
<Setter Property="Background" Value="#F0F4F8"/>
|
||||
<Setter Property="Foreground" Value="#4A5568"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="IntParamNumberBoxStyle" TargetType="mw:IntNumberBox">
|
||||
<Setter Property="Width" Value="100"/>
|
||||
<Setter Property="Height" Value="28"/>
|
||||
<Setter Property="Margin" Value="6,2"/>
|
||||
<Setter Property="mw:NumericKeypadAttach.IsEnabled" Value="True"/>
|
||||
<Setter Property="Minimum" Value="0"/>
|
||||
<Setter Property="Maximum" Value="1000"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="SmallActionButtonStyle" TargetType="Button">
|
||||
<Setter Property="Height" Value="28"/>
|
||||
<Setter Property="Padding" Value="10,0"/>
|
||||
<Setter Property="Margin" Value="4,2"/>
|
||||
<Setter Property="FontSize" Value="11"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Border x:Name="bd" Background="#EDF2F7" BorderBrush="#CBD5E0"
|
||||
BorderThickness="1" CornerRadius="4"
|
||||
Padding="{TemplateBinding Padding}">
|
||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="#E2E8F0"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="#CBD5E0"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter TargetName="bd" Property="Background" Value="#F7FAFC"/>
|
||||
<Setter TargetName="bd" Property="BorderBrush" Value="#E2E8F0"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="StartCalibButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="110"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="0,0,6,0"/>
|
||||
<Setter Property="Background" Value="#1A202C"/>
|
||||
<Setter Property="BorderBrush" Value="#1A202C"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#2D3748"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="#0F141B"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Background" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="VerifyButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="110"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="0,0,6,0"/>
|
||||
<Setter Property="Background" Value="#2B6CB0"/>
|
||||
<Setter Property="BorderBrush" Value="#2B6CB0"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#2C5282"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="#1A365D"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Background" Value="{StaticResource DisabledBackground}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="StopButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
|
||||
<Setter Property="Width" Value="110"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Margin" Value="0,0,6,0"/>
|
||||
<Setter Property="Background" Value="#E53E3E"/>
|
||||
<Setter Property="BorderBrush" Value="#E53E3E"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#C53030"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="#9B2C2C"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</UserControl.Resources>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- ==================== 左侧:相机预览(对标原点标定) ==================== -->
|
||||
<Border Grid.Column="0" Margin="0,0,4,0">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="32"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0" Padding="10,0">
|
||||
<Grid>
|
||||
<TextBlock Text="相机预览"
|
||||
Foreground="#7A8FA6"
|
||||
FontSize="11"
|
||||
FontWeight="SemiBold"
|
||||
VerticalAlignment="Center"/>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Ellipse Width="7" Height="7" Fill="#28A745" Margin="0,0,4,0"/>
|
||||
<TextBlock Text="LIVE" Foreground="#28A745" FontSize="10" FontWeight="Bold"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<ContentControl Grid.Row="1" Content="{Binding CameraAxisViewModel}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ==================== 右侧:工具栏 + 模块卡片 ==================== -->
|
||||
<Grid Grid.Column="1">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="50"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- 顶部工具栏(对标原点标定) -->
|
||||
<Border Grid.Row="0" Background="White" BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1" Padding="8,0">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Button Content="保存配置"
|
||||
Click="{mw:Action SaveConfig}"
|
||||
Style="{StaticResource SaveButtonStyle}"
|
||||
Width="130"
|
||||
Height="34"
|
||||
Margin="5,0"/>
|
||||
<Button Content="全部复位"
|
||||
Click="{mw:Action ResetAll}"
|
||||
Style="{StaticResource ResetButtonStyle}"
|
||||
Width="130"
|
||||
Height="34"
|
||||
Margin="5,0"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- 单模块卡片(对标原点标定的卡片,但不用 ItemsControl) -->
|
||||
<ScrollViewer Grid.Row="1"
|
||||
VerticalScrollBarVisibility="Auto"
|
||||
HorizontalScrollBarVisibility="Disabled"
|
||||
CanContentScroll="False"
|
||||
PanningMode="VerticalOnly"
|
||||
Padding="8,8,8,0">
|
||||
|
||||
<!-- 直接绑定单个 Module,不再用 ItemsControl -->
|
||||
<Border Style="{StaticResource ModuleCardStyle}" DataContext="{Binding Module}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="36"/>
|
||||
<!-- Header -->
|
||||
<RowDefinition Height="Auto"/>
|
||||
<!-- 避让/位置 -->
|
||||
<RowDefinition Height="Auto"/>
|
||||
<!-- 标定参数 -->
|
||||
<RowDefinition Height="Auto"/>
|
||||
<!-- 验证参数 -->
|
||||
<RowDefinition Height="Auto"/>
|
||||
<!-- 进度条 -->
|
||||
<RowDefinition Height="46"/>
|
||||
<!-- Footer -->
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- ====== 卡片 Header(对标原点标定) ====== -->
|
||||
<Border Grid.Row="0"
|
||||
Background="#F7F9FC"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
CornerRadius="6,6,0,0"
|
||||
Padding="10,0">
|
||||
<Grid>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<TextBlock Text="[] " Foreground="#8892A0" FontSize="14" VerticalAlignment="Center"/>
|
||||
<TextBlock FontWeight="SemiBold" FontSize="13" Foreground="#2D3748" VerticalAlignment="Center">
|
||||
<Run Text="模块"/>
|
||||
<Run Text=" 01: "/>
|
||||
<Run Text="{Binding ModuleName}"/>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Border Style="{StaticResource BadgeStyle}"
|
||||
Background="#EDF2F7"
|
||||
Visibility="{Binding ShowIndependentBadge}">
|
||||
<TextBlock Text="独立" FontSize="10" Foreground="#718096"/>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ====== Section 1:WS旋转表标定位置(对标避让区域) ====== -->
|
||||
<Border Grid.Row="1"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
Padding="10,8">
|
||||
<StackPanel>
|
||||
<!-- 区域标题 -->
|
||||
<Grid Margin="0,0,0,6">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#E8821A" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
||||
<TextBlock Text="WS旋转表标定位置"
|
||||
Foreground="#E8821A"
|
||||
Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<!-- X1避让位 -->
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="90"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="X1避让位(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding X1AvoidancePosition, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
Width="80" mw:NumericKeypadAttach.IsEnabled="True"
|
||||
IsEnabled="{Binding CanStartCalib}"/>
|
||||
<Button Grid.Column="2"
|
||||
Content="移到此位置"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action MoveToPosition}"
|
||||
mw:View.ActionTarget="{Binding}"
|
||||
IsEnabled="{Binding CanStartCalib}"/>
|
||||
</Grid>
|
||||
|
||||
<!-- 起始位置 X2 / Y1 -->
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="90"/>
|
||||
<ColumnDefinition Width="40"/>
|
||||
<ColumnDefinition Width="90"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="X2:"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding StartX, Mode=TwoWay}" Width="80" mw:NumericKeypadAttach.IsEnabled="True"/>
|
||||
<TextBlock Grid.Column="2"
|
||||
Text="Y1:"
|
||||
Style="{StaticResource ParamLabelStyle}"/>
|
||||
<mw:NumberBox Grid.Column="3"
|
||||
Value="{Binding StartY, Mode=TwoWay}" Width="80" mw:NumericKeypadAttach.IsEnabled="True"/>
|
||||
<Button Grid.Column="4"
|
||||
Content="中心对齐"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action MoveToCenterPoint}"
|
||||
mw:View.ActionTarget="{Binding}"
|
||||
IsEnabled="{Binding CanStartCalib}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- ====== Section 2:标定参数 ====== -->
|
||||
<Border Grid.Row="2"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
Padding="10,8">
|
||||
<StackPanel>
|
||||
<!-- 区域标题 -->
|
||||
<Grid Margin="0,0,0,6">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#2D3748" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
||||
<TextBlock Text="标定参数"
|
||||
Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<!-- 行列数 / 旋转步进 -->
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="90"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="90"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="行列数:"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:IntNumberBox Grid.Column="1"
|
||||
Value="{Binding RowCol, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding CanStartCalib}" Width="80"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"/>
|
||||
<TextBlock Grid.Column="2"
|
||||
Text="旋转步进(°):"
|
||||
Style="{StaticResource ParamLabelStyle}"/>
|
||||
<mw:NumberBox Grid.Column="3"
|
||||
Value="{Binding RotateStep, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding CanStartCalib}" Width="80"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"/>
|
||||
</Grid>
|
||||
|
||||
<!-- Wafer间距 -->
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="90"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="Wafer间距(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding WaferStep, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding CanStartCalib}" Width="80"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- ====== Section 3:验证参数 ====== -->
|
||||
<Border Grid.Row="3"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,0,0,1"
|
||||
Padding="10,8">
|
||||
<StackPanel>
|
||||
<!-- 区域标题 -->
|
||||
<Grid Margin="0,0,0,6">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Ellipse Width="8" Height="8" Fill="#2B6CB0" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
||||
<TextBlock Text="验证参数"
|
||||
Foreground="#2B6CB0"
|
||||
Style="{StaticResource SectionHeaderTextStyle}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<!-- 验证起点 X / Y -->
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="90"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="90"/>
|
||||
<ColumnDefinition Width="85"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="起点X(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding VerifyStartX, Mode=TwoWay}" Width="80"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"/>
|
||||
<TextBlock Grid.Column="2"
|
||||
Text="起点Y(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"/>
|
||||
<mw:NumberBox Grid.Column="3"
|
||||
Value="{Binding VerifyStartY, Mode=TwoWay}" Width="80"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"/>
|
||||
<Button Grid.Column="4"
|
||||
Content="中心对齐"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action VerifyApproachCenter}"
|
||||
mw:View.ActionTarget="{Binding}"
|
||||
IsEnabled="{Binding CanStartCalib}"/>
|
||||
|
||||
</Grid>
|
||||
|
||||
<!-- 验证行列数 / Wafer间距 -->
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="90"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="90"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="行列数:"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:IntNumberBox Grid.Column="1"
|
||||
Value="{Binding VerifyRowCol, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding CanStartCalib}" Width="80"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"/>
|
||||
<TextBlock Grid.Column="2"
|
||||
Text="Wafer间距(mm):"
|
||||
Style="{StaticResource ParamLabelStyle}"/>
|
||||
<mw:NumberBox Grid.Column="3"
|
||||
Value="{Binding VerifyWaferStep, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding CanStartCalib}" Width="80"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"/>
|
||||
<!--<Button Grid.Column="4"
|
||||
Content="设为起点"
|
||||
Style="{StaticResource SmallActionButtonStyle}"
|
||||
Click="{mw:Action SetVerifyStart}"
|
||||
mw:View.ActionTarget="{Binding}"
|
||||
IsEnabled="{Binding CanStartCalib}"/>-->
|
||||
</Grid>
|
||||
|
||||
<!-- 旋转角度 -->
|
||||
<Grid Margin="0,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="90"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="旋转角度(°):"
|
||||
Style="{StaticResource ParamLabelStyle}"
|
||||
Margin="6,0"/>
|
||||
<mw:NumberBox Grid.Column="1"
|
||||
Value="{Binding VerifyRotateRange, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsEnabled="{Binding CanStartCalib}" Width="80"
|
||||
mw:NumericKeypadAttach.IsEnabled="True"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- ====== Section 4: 标定验证进度条 ====== -->
|
||||
<Border Grid.Row="4"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,1,0,0"
|
||||
Background="#F0F7FF"
|
||||
Padding="10,8"
|
||||
Visibility="{Binding IsProgressVisible, Converter={StaticResource
|
||||
BoolToVisibilityConverter}}">
|
||||
<StackPanel>
|
||||
<!-- 进度文本 -->
|
||||
<Grid Margin="0,0,0,6">
|
||||
<TextBlock Text="{Binding ProgressMessage}"
|
||||
FontSize="12"
|
||||
Foreground="#2B6CB0"
|
||||
VerticalAlignment="Center"/>
|
||||
<TextBlock Text="{Binding ProgressText, Mode=OneWay}"
|
||||
FontSize="11"
|
||||
Foreground="#718096"
|
||||
HorizontalAlignment="Right"
|
||||
VerticalAlignment="Center"/>
|
||||
</Grid>
|
||||
|
||||
<!-- 进度条 -->
|
||||
<ProgressBar Height="6"
|
||||
Minimum="0"
|
||||
Maximum="100"
|
||||
Value="{Binding ProgressPercentage, Mode=OneWay}"
|
||||
Background="#E2E8F0"
|
||||
Foreground="#2B6CB0"
|
||||
BorderThickness="0"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- ====== 卡片 Footer(对标原点标定) ====== -->
|
||||
<Border Grid.Row="5"
|
||||
BorderBrush="#E0E4EA"
|
||||
BorderThickness="0,1,0,0"
|
||||
Background="#FAFBFC"
|
||||
CornerRadius="0,0,6,6"
|
||||
Padding="10,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Button Content="开始标定"
|
||||
Click="{mw:Action StartCalib}"
|
||||
mw:View.ActionTarget="{Binding}"
|
||||
Style="{StaticResource StartCalibButtonStyle}"
|
||||
IsEnabled="{Binding CanStartCalib}"
|
||||
Margin="0,0,25,0"/>
|
||||
<Button Content="开始验证"
|
||||
Click="{mw:Action StartVerify}"
|
||||
mw:View.ActionTarget="{Binding}"
|
||||
Style="{StaticResource VerifyButtonStyle}"
|
||||
IsEnabled="{Binding CanStartCalib}"
|
||||
Margin="0,0,25,0"/>
|
||||
<Button Content="停止"
|
||||
Click="{mw:Action Stop}"
|
||||
mw:View.ActionTarget="{Binding}"
|
||||
Style="{StaticResource StopButtonStyle}"/>
|
||||
<!--<Button Content="写入控制器"
|
||||
Click="{mw:Action WriteToController}"
|
||||
mw:View.ActionTarget="{Binding}"
|
||||
Style="{StaticResource ModuleWriteButtonStyle}"
|
||||
IsEnabled="{Binding CanWriteToController}"/>-->
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
|
||||
<!-- 全局 Loading 遮罩(对标原点标定) -->
|
||||
<customControl:LoadingWaitView Grid.ColumnSpan="2" Panel.ZIndex="1000"/>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -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 MainShell.AlgorithmCalib.View
|
||||
{
|
||||
/// <summary>
|
||||
/// RotateMatixFormCalibView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class RotateMatixFormCalibView : UserControl
|
||||
{
|
||||
public RotateMatixFormCalibView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user